错误CS0430:未在/ reference选项[Up.UnitTests \ obj \ x64 \ Debug \ Fakes \ wsc \ f.csproj]

时间:2018-09-11 00:36:16

标签: microsoft-fakes

单元测试项目Up.UnitTests在构建过程中失败,出现此构建错误

错误CS0430:未在/ reference选项中指定外部别名'snh' 错误CS0234:类型或名称空间名称'System'在名称空间'snh'中不存在(您是否缺少程序集引用?)

名称空间“ snh”中不存在类型或名称空间名称“ System”

我猜测上述错误是由于System.Net.Http引起的。与不同版本有关吗?如何解决此问题。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我也遇到了此CS0430错误。在我的方案中,问题是由于更新NSubstitute导致的依赖关系引起的。我更新了如下的* .fakes文件以添加诊断,然后发现问题是您观察到的System.Net.Http。

from django.db.models import Count

recipes = Recipe.objects.annotate(count_ingredients=Count('ingredients'))
for recipe in recipes:
    print(recipe.pk, recipe.count_ingredients)

在此之后,我试图通过缓慢地删除新的依赖项来找到问题的根本原因,并发现当System.Threading.Tasks.Extensions Nuget参考存在时,我会得到构建错误。在升级期间,NSubstitute添加了System.Threading.Tasks.Extensions。在您的方案中,可能是类似的依赖关系问题,它与System.Net.Http没有直接关系。

更新:我发现this issue on the dotnet/sdk repo可以解决此问题。在测试项目中,添加以下Directory.Build.targets。

<Fakes xmlns="http://schemas.microsoft.com/fakes/2011/" Diagnostic="true">
  <Assembly Name="ClassLibrary1"/>
</Fakes>