从.netcore 2.1迁移到asp.net 4.7.2后找不到System.Net.Http

时间:2018-08-23 16:13:11

标签: asp.net .net dll .net-core nuget-package

由于一些第三方.dll,我最近将项目从.netcore 2.1迁移到asp.net 4.7.2。该解决方案在本地构建和运行。它还基于TeamCity中的开发环境。但是,它在Azure中不起作用。在检查日志时,出现以下错误:

  

[ERR]执行请求时发生未处理的异常。   System.IO.FileNotFoundException:无法加载文件或程序集“ System.Net.Http,Version = 4.2.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a”或其依赖项之一。系统找不到指定的文件。

该文件确实存在!经过研究,我发现了这篇文章:Single-name references are removed by the SDK when targeting .NET Framework 4.7.2 and referencing a package with the same assembly

我删除了System.Http.Net参考,希望它将在框架中使用它,同样的错误。接下来,我尝试了在其中说明的解决方法:

<ItemGroup>
  <PackageReference Include="System.Net.Http" Version="4.2.0">
    <ExcludeAssets>All</ExcludeAssets>
  </PackageReference>
</ItemGroup>

相同的错误。

欢迎任何帮助或令人困扰的拍摄想法

1 个答案:

答案 0 :(得分:1)

我希望您在将目标定为4.7.1时会看到什么,但是如果目标是4.7.2,则永远不会发生此问题。您是否愿意共享msbuild binlog,以便我们可以尝试调查此处的问题并找到解决方案?为了生成msbuild binlog,只需运行以下命令从开发人员命令提示符下构建项目:

msbuild yourProject.csproj /t:rebuild /bl

那应该在当前目录上创建一个msbuild.binlog文件,所以如果可以上传,我很乐意为您提供帮助。