我在遗留项目上工作,必须支持相同dll的8个不同版本。我可以访问库源代码,所以我可以自己构建这些dll。
dll是强签名的,每个都有自己的版本号3.6.0.0,3.7.0.1等。
但是,每个dll都具有相同的publicKeyToken。这很令人沮丧,因为我收到了构建警告:
无法解决“Test.Core,Version = 9.0.0.0之间的冲突, Culture = neutral,PublicKeyToken = c6699d902bca3abc“和”Test.Core, Version = 7.4.0.0,Culture = neutral,PublicKeyToken = c6699d902bca3abc“。 选择“Test.Core,Version = 9.0.0.0,Culture = neutral, PublicKeyToken = c6699d902bca3abc“任意。
有任何解决此问题的建议吗?如何获得唯一的密钥令牌?
答案 0 :(得分:0)
好的,经过大量搜索和尝试各种配置后,我必须得出结论,这无法以任何方式解决。
甚至无法取消构建警告:s msdn
答案 1 :(得分:0)
可以使用条件设置的自定义配置。考虑一种设计,其中每个配置都引用不同的输出路径。
<ItemGroup Condition="'$(Configuration)'=='Debug_TestCore740'">
<Reference Include="Test.Core, Version=7.4.0.0, Culture=neutral, PublicKeyToken=c6699d902bca3abc, processorArchitecture=MSIL" />
<HintPath>..\Test.Core\$(Configuration)\Test.Core.dll</HintPath>
</ItemGroup>
<ItemGroup Condition="'$(Configuration)'=='Debug_TestCore900'">
<Reference Include="Test.Core, Version=9.0.0.0, Culture=neutral, PublicKeyToken=c6699d902bca3abc, processorArchitecture=MSIL" />
<HintPath>..\Test.Core\$(Configuration)\Test.Core.dll</HintPath>
</ItemGroup>