为什么发布无法发布System.Net.Http.dll?
问题描述:
我有一个用C#编写的无法发布System.Net.Http.dll和System.Net.Http.WebRequest.dll的WPF应用程序。为什么发布无法发布System.Net.Http.dll?
当用户启动他们收到错误的应用程序:
Could not load file or assembly 'System.Net.Http, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
复制此问题:
- 打开VS2012
- 文件 - >新建 - >项目 - > Visual C#中 - > WPF应用程序
- 右键单击引用 - >管理NuGet程序包...
- 添加个微软的ASP.NET Web API客户端库通过搜索Microsoft.AspNet.WebApi.Client
- 右键单击项目 - >属性
- 单击发布选项卡
- 取消选中自动递增的版本和各发行
- 点击立即发布按钮
- 注意的是,在
publish\Application Files\WpfApplication1_1_0_0_0
文件夹,你会看到System.Net.Http.Formatting.dl l.deploy但您不会看到其他两个文件,System.Net.Http.dll.deploy或System.Net.Http.WebRequest.dll.deploy。
答
变通
现在,我已经包含在项目的根目录的二进制文件。这有味道,但必须要做,直到有更好的解决方案出现。
步骤变通办法:
- 右键单击项目 - >添加 - >现有项
- 浏览
SolutionRoot\packages\Microsoft.Net.Http.2.0.20710.0\lib\net40
选择两个System.Net.Http.dll和System.Net.Http.WebRequest.dll - 这增加了这两个文件为“内容”的应用程序 - 你会得到警告(MSBuild Error MSB3178),但它不会出现,你可以做任何事情
- 请注意,现在当您发布时,这两个文件将位于
publish\Application Files\WpfApplication1_1_0_0_0
文件夹中
此处同样的问题。你有没有找到更好的方法? – 0li 2017-01-13 16:04:15