Эталонные сборки с одинаковыми типами от visual studio - PullRequest
0 голосов
/ 16 февраля 2012

У меня есть приложение ASP.NET MVC, которое должно ссылаться на несколько сборок, содержащих одно и то же пространство имен и типы, например: ProductSdkBe.DLL, ProductSdkIt.DLL и т. Д. Фактически, они примерно одинаковы с одинаковыми типами, но отличаются деталями реализации.

Я обнаружил, что это можно сделать с помощью 'extern alias', как описано в двух разных DLL с одинаковым пространством имен , но это не работает. Итак, что я сделал:

  1. Из моего приложения ASP.NET MVC ссылаться на сборки
  2. Для каждой сборки установите псевдоним (вместо глобального по умолчанию)
  3. Поместить внешний псевдоним поверх файла

Я всегда получаю сообщение об ошибке: «Внешний псевдоним не был указан в параметре / 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.

Что я делаю не так?

...