为什么发布无法发布System.Net.Http.dll?

Ric*_*los 4 wpf clickonce webclient visual-studio-2012

我有一个用C#编写的WPF应用程序,它无法发布System.Net.Http.dll和System.Net.Http.WebRequest.dll.

当用户启动应用程序时,他们会收到错误:

无法加载文件或程序集'System.Net.Http,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'或其依赖项之一.该系统找不到指定的文件.

要复制此问题:

  1. 打开VS2012
  2. 文件 - >新建 - >项目 - > Visual C# - > WPF应用程序
  3. 右键单击引用 - >管理NuGet包...
  4. 通过搜索Microsoft.AspNet.WebApi.Client添加Microsoft ASP.NET Web API客户端库
  5. 右键单击项目 - >"属性"
  6. 单击"发布"选项卡
  7. 取消选中每次发布时自动增加修订
  8. 单击" 立即发布"按钮
  9. 请注意,在该publish\Application Files\WpfApplication1_1_0_0_0文件夹中,您将看到System.Net.Http.Formatting.dll.deploy,但您将看不到其他两个文件,System.Net.Http.dll.deploySystem.Net.Http.WebRequest.dll.部署.

Ric*_*los 5

变通


现在,我已经在项目根目录中包含了二进制文件.这有点气味,但必须要做到更好的解决方案.

解决方法的步骤:

  1. 右键单击项目 - >添加... - >现有项目
  2. 浏览SolutionRoot\packages\Microsoft.Net.Http.2.0.20710.0\lib\net40并选择System.Net.Http.dllSystem.Net.Http.WebRequest.dll
  3. 这会将两个文件作为"内容"添加到应用程序中 - 您将收到警告(MSBuild错误MSB3178),但似乎您无法对其执行任何操作
  4. 请注意,现在发布时,这两个文件都将位于该publish\Application Files\WpfApplication1_1_0_0_0文件夹中