我有一个使用微软假货的C#测试项目。 项目引用的外部库( abc.dll )最近更新为 .net standard 2.0 。 将 abc.dll 库引用更新到最新版本后,测试项目不再构建,也不会为该库生成虚假程序集( dll )。 我在生成的 .csproj 文件中看到以下错误。
在/ reference选项
中未指定外部别名'snh'
我查看了生成的。 csproj 文件,别名snh对应于 System.Net.Http 。
测试项目的目标是.net 4.6.1,我正在使用最新的VS 2017
知道如何解决这个问题吗?
答案 0 :(得分:2)
当前这是一个未解决的问题,该项目的目标是.Net Framework 4.7.1,并引用了netstandard库。它在这里被跟踪:https://github.com/dotnet/sdk/issues/2254。
我将提供对我有用的解决方法: 作为参考,针对假货问题发布的解决方法是将以下内容放入Directory.Build.targets:
<ItemGroup Condition="'@(_NETStandardLibraryNETFrameworkLib)' != ''">
<SnhReference Include = "@(_NETStandardLibraryNETFrameworkLib)" Condition="'%(_NETStandardLibraryNETFrameworkLib.FileName)' == 'System.Net.Http'" />
<Reference Remove="%(SnhReference.FileName)" Condition="'@(SnhReference)' != ''"/>
<Reference Include="%(SnhReference.FileName)" Condition="'@(SnhReference)' != ''">
<HintPath>%(SnhReference.Identity)</HintPath>
<Private>false</Private>
<Aliases>snh</Aliases>
</Reference>
</ItemGroup>