У нас были проблемы в нашей сборке с некоторыми из наших зависимостей, заставляющих действительно старую версию библиотеки, которую мы использовали сами, в более новой версии.Это стало немного хуже с переходом к новому стилю файлов проектов, в котором больше не упоминаются ресурсы DLL, вносимые пакетами NuGet, потому что мы утратили возможность пометить такие сборки псевдонимами.
Теперь я выяснил решение в основном той же проблемы на GitHub NuGet.Я адаптировал его для наших нужд следующим образом:
<Target Name="AliasLog4Net" BeforeTargets="FindReferenceAssembliesForReferences;ResolveReferences">
<ItemGroup>
<ReferencePath Condition="'%(FileName)' == 'log4net'">
<Aliases>l4n</Aliases>
</ReferencePath>
</ItemGroup>
</Target>
Он работает волшебным образом.Хотя я хочу знать, почему.
- Я не могу найти документацию для
ReferencePath
.В частности, я хотел бы знать, что я могу проверить в атрибуте Condition
, кроме %(FileName)
? - Как я могу записать эту логику?Есть ли способ написать что-нибудь для каждого специального применения псевдонима таким образом?