Как работает ad-hoc алиасинг сборок с ссылками на NuGet? - PullRequest
0 голосов
/ 25 мая 2018

У нас были проблемы в нашей сборке с некоторыми из наших зависимостей, заставляющих действительно старую версию библиотеки, которую мы использовали сами, в более новой версии.Это стало немного хуже с переходом к новому стилю файлов проектов, в котором больше не упоминаются ресурсы DLL, вносимые пакетами NuGet, потому что мы утратили возможность пометить такие сборки псевдонимами.

Теперь я выяснил решение в основном той же проблемы на GitHub NuGet.Я адаптировал его для наших нужд следующим образом:

<Target Name="AliasLog4Net" BeforeTargets="FindReferenceAssembliesForReferences;ResolveReferences">
  <ItemGroup>
    <ReferencePath Condition="'%(FileName)' == 'log4net'">
      <Aliases>l4n</Aliases>
    </ReferencePath>
  </ItemGroup>
</Target>

Он работает волшебным образом.Хотя я хочу знать, почему.

  • Я не могу найти документацию для ReferencePath.В частности, я хотел бы знать, что я могу проверить в атрибуте Condition, кроме %(FileName)?
  • Как я могу записать эту логику?Есть ли способ написать что-нибудь для каждого специального применения псевдонима таким образом?
...