Comments 17
если вы генерите редиректы средствами MSBuild, то редиректы генерятся при билде
Совет генерить редиректы средствами MSBuild к сожалению, не применим в классическом ASP.NET (System.Web)
Хак с добавлением <GenerateBindingRedirectsOutputType>
не срабатывает? У меня, на вид, получилось.
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
Хм, когда в последний раз смотрел, не работало.
А он web.config генерит или app.config?
Этот вариант не всегда работает
Спасибо за дополнение. Ниже там предлагают использовать вариант с таргетом:
<Target Name="ForceGenerationOfBindingRedirects"
AfterTargets="ResolveAssemblyReferences"
BeforeTargets="GenerateBindingRedirects"
Condition="'$(AutoGenerateBindingRedirects)' == 'true'">
<PropertyGroup>
<!-- Needs to be set in a target because it has to be set after the initial evaluation in the common targets -->
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
</PropertyGroup>
</Target>
Visual Studio, даже если в неё не установлен R#, падает с Out Of Memory на больших solution-ах, внутри которых есть проекты с SDK-style *.csproj.
150 проектов, чистая Visual Studio живет, Rider живет, VS + R# — лежит не вставая.
Проекты старого или нового SDK-style формата? Предположу, что здесь столкнулись не с особенностями проектной модели, а с тем, что всё просто не влезло в 32-битный процесс
Обнаружил, что в блоге .NET тулов JetBrains есть статья про проблему с большими солюшенами https://blog.jetbrains.com/dotnet/2020/05/11/story-csproj-large-solutions-memory-usage/
И вот здесь мы можем увидеть, что .NET Framework ни в каком виде не поддерживает .NET Standard версии 2.0
Кажется, тут должно быть 2.1, если я правильно понял мысль.
Во всем остальном — статья прекрасная, мне была очень полезна — в какой-то момент перестал понимать, откуда столько лишних библиотек в билде 4.6.1 с target'ом на standard 2.0, а это, оказывается, признанная ошибка MS. Занятно.
P.S. А когда ожидать миграции Rider на Core?
В Fusion++ есть некоторая защита от пользователя на такой случай — чтобы увидеть логи, нужно нажать Stop.
Райдер уже сейчас (начиная с 2020.1) запускается на .NET Core под Linux и macOS. На Windows поддержка .NET Core тоже есть, но она выключена из-за некоторых технических сложностей, например нерабочего дизайнера WinForms (в его нынешней реализации в райдере используется сериализация, несовместимая с .NET Core) и необходимости переехать с ngen на crossgen. Сам по себе переход на .NET Core на Windows не даст значительного выигрыша по производительности сразу, но позволит использовать новые API и позволит не зависеть от рантайма, установленного у пользователя.
Хочешь не хочешь, а в кишках копаться приходится =)
Спасибо за статью. Но у меня возникает стойкое ощущение, что половина этой логики была задизайнена, как JS, за 15 дней после дедлайна и корпоративной вечеринки, а вторая — панические попытки пропатчить первую половину.
.NET: Лечение зависимостей