4

我有一个用 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。部署.
4

1 回答 1

5

解决方法


目前,我已将二进制文件包含在项目根目录中。这闻起来很臭,但必须这样做,直到有更好的解决方案出现。

解决步骤:

  1. 右键单击项目 -> 添加... -> 现有项目
  2. 浏览SolutionRoot\packages\Microsoft.Net.Http.2.0.20710.0\lib\net40并选择System.Net.Http.dllSystem.Net.Http.WebRequest.dll
  3. 这会将两个文件作为“内容”添加到应用程序中 - 您会收到警告(MSBuild Error MSB3178),但您似乎无能为力
  4. 请注意,现在当您发布时,这两个文件都将在publish\Application Files\WpfApplication1_1_0_0_0文件夹中
于 2013-05-08T17:27:23.607 回答