【问题标题】:Why does publish fail to publish System.Net.Http.dll?为什么发布无法发布 System.Net.Http.dll?
【发布时间】:2013-05-08 15:57:11
【问题描述】:

我有一个用 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.deploy

【问题讨论】:

    标签: wpf visual-studio-2012 clickonce webclient


    【解决方案1】:

    解决方法


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

    解决步骤:

    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 文件夹中

    【讨论】:

    • 这里有同样的问题。你找到更好的方法了吗?
    • 5 年后......同样的问题......这是个笑话吗?
    • 是的,看来问题仍然存在。刚刚遇到同样的问题。如果我错了,请纠正我,将不胜感激。
    • 对于其他寻找类似但更具描述性的答案的人。检查这个:stackoverflow.com/a/18917647/7311104
    猜你喜欢
    • 1970-01-01
    • 2013-05-02
    • 1970-01-01
    • 2016-05-20
    • 2021-07-10
    • 1970-01-01
    • 2021-08-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多