У меня есть приложение ASP.NET MVC, которое должно ссылаться на несколько сборок, содержащих одно и то же пространство имен и типы, например: ProductSdkBe.DLL, ProductSdkIt.DLL и т. Д. Фактически, они примерно одинаковы с одинаковыми типами, но отличаются деталями реализации.
Я обнаружил, что это можно сделать с помощью 'extern alias', как описано в двух разных DLL с одинаковым пространством имен , но это не работает. Итак, что я сделал:
- Из моего приложения ASP.NET MVC ссылаться на сборки
- Для каждой сборки установите псевдоним (вместо глобального по умолчанию)
- Поместить внешний псевдоним поверх файла
Я всегда получаю сообщение об ошибке: «Внешний псевдоним не был указан в параметре / reference».
Затем я попробовал решение Внешний псевдоним 'xxx' не был указан в параметре / reference и добавил следующее в файл проекта:
<Target Name="solveAliasProblem" >
<ItemGroup>
<ReferencePath Remove="D:\path\EC.ProductServices.Sdk_be.dll"/>
<ReferencePath Include="D:\path\EC.ProductServices.Sdk_be.dll">
<Aliases>ProductSdkBe</Aliases>
</ReferencePath>
</ItemGroup>
<ItemGroup>
<ReferencePath Remove="D:\path\EC.ProductServices.Sdk_it.dll"/>
<ReferencePath Include="D:\path\EC.ProductServices.Sdk_it.dll">
<Aliases>ProductSdkIt</Aliases>
</ReferencePath>
</ItemGroup>
но тогда выдает ошибку:
An assembly with the same simple name 'EC.ProductServices.Sdk, Version=1.0.0.1, Culture=neutral, PublicKeyToken=null has already been imported. Try removing one of the references or sign them to enable side-by-side. EC.ProductServices.Sdk_be.dll.
Что я делаю не так?