Pull to refresh

Comments 17

если вы генерите редиректы средствами MSBuild, то редиректы генерятся при билде

Совет генерить редиректы средствами MSBuild к сожалению, не применим в классическом ASP.NET (System.Web)

Хак с добавлением <GenerateBindingRedirectsOutputType> не срабатывает? У меня, на вид, получилось.


<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>

Хм, когда в последний раз смотрел, не работало.
А он web.config генерит или app.config?

.dll.config или .exe.config в соответствии с типом бинаря проекта. Для веб приложения, скорее всего, будет *.dll.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 Framework ни в каком виде не поддерживает .NET Standard версии 2.0

Кажется, тут должно быть 2.1, если я правильно понял мысль.
Во всем остальном — статья прекрасная, мне была очень полезна — в какой-то момент перестал понимать, откуда столько лишних библиотек в билде 4.6.1 с target'ом на standard 2.0, а это, оказывается, признанная ошибка MS. Занятно.

Что касается Fusion Log: главное его не забыть выключить! Мало того, что логи место съедают, так это ещё очень сильно замедляет работу самих .Net приложений. Я так месяц сидел с тормозящим рабочим проектом на рабочем компе и не мог понять — почему у всех наш продукт работает прилично, а у меня — как унылая какашка))
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 дней после дедлайна и корпоративной вечеринки, а вторая — панические попытки пропатчить первую половину.

Sign up to leave a comment.