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

时间:2013-05-08 15:57:12

标签: wpf visual-studio-2012 clickonce webclient

我有一个用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
  5. 添加 Microsoft ASP.NET Web API客户端库
  6. 右键单击项目 - >特性
  7. 点击发布标签
  8. 取消选中自动增加每次发布的修订
  9. 点击立即发布按钮
  10. 请注意,在publish\Application Files\WpfApplication1_1_0_0_0文件夹中,您会看到 System.Net.Http.Formatting.dll.deploy ,但您将看不到其他两个文件 System。 Net.Http.dll.deploy System.Net.Http.WebRequest.dll.deploy

1 个答案:

答案 0 :(得分:5)

<强>变通


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

解决方法的步骤:

  1. 右键单击项目 - &gt;添加... - &gt;现有项目
  2. 浏览至SolutionRoot\packages\Microsoft.Net.Http.2.0.20710.0\lib\net40并同时选择 System.Net.Http.dll System.Net.Http.WebRequest.dll
  3. 这会将两个文件作为“内容”添加到应用程序中 - 您将收到警告(MSBuild Error MSB3178),但似乎您无法对此做任何事情
  4. 请注意,现在发布时,这两个文件都位于publish\Application Files\WpfApplication1_1_0_0_0文件夹