【问题标题】:Deploying System.Net.Http.dll with ClickOnce使用 ClickOnce 部署 System.Net.Http.dll
【发布时间】:2013-09-20 21:32:40
【问题描述】:

我正在开发一个使用 ClickOnce 部署的应用程序。从 .NET 4.5 降级到 .NET 4.0 并替换修复错误引用后,现在我遇到了部署包的问题。一些文件,最重要的是System.Net.Http.dll 没有与应用程序一起部署。我已经做了一些检查,但无法得出究竟为什么会发生这种情况。我怀疑这个包是在目标机器上已经存在这个程序集的情况下创建的。如果目标框架是 .NET 4.5,这将是合理的,但现在不是 .NET 4。奇怪的是,System.Net.Http.Extensions.dll 被正确部署。

两个文件的设置和版本号相同:

引用同一个包:

<Reference Include="System.Net.Http, Version=2.2.13.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
  <HintPath>..\packages\Microsoft.Net.Http.2.2.13\lib\net40\System.Net.Http.dll</HintPath>
  <SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="System.Net.Http.Extensions, Version=2.2.13.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\packages\Microsoft.Net.Http.2.2.13\lib\net40\System.Net.Http.Extensions.dll</HintPath>
</Reference>

目标平台是 .NET 4,部署前提也是 .NET 4 和 KB 更新。

文件甚至没有显示在应用程序文件对话框中:

有什么想法吗?如果一切都失败了,我可能会尝试将程序集部署为内容文件。 删除和重新添加引用并没有什么不同。

【问题讨论】:

    标签: .net clickonce


    【解决方案1】:

    微软在Visual Studio support thread 上发布的消息说:

    这将在 Visual Studio 2013 的下一次更新中得到修复。在此之前,您将不得不使用将程序集添加为链接的解决方法。

    所以,我找到了下一个resolution (issue 8)

    发生这种情况是因为 ClickOnce 无法部署某些必需的程序集。作为一种解决方法,请执行以下操作:

    1. 右键单击项目并选择添加现有项目
    2. 浏览到 HttpClient net40 包文件夹
    3. 在文件名文本框中输入
    4. 按住 CTRL,选择 System.Net.Http.dll 和 System.Net.Http.Primitives.dll
    5. 单击“添加”按钮旁边的向下箭头并选择“添加为链接”
    6. 在解决方案资源管理器中,按住 CTRL 选择 System.Net.Http.dll 和 System.Net.Http.WebRequest.dll
    7. 右键单击所选内容,选择“属性”并将“复制到输出目录”更改为“始终复制”
    8. 重新发布

    就我而言,只添加一个库就足够了System.Net.Http

    【讨论】:

    • 我接受这个是因为链接到一个支持线程,尽管它并没有为我解决问题。但至少它让我知道 MS 意识到了这个问题。我通过使用 mage.exe 创建一个用于创建部署的 powershell 脚本为自己解决了这个问题。不幸的是,这并不像应有的那么简单。
    • 如果我的用户安装了 .NET 4.5.1,我可以假设 System.Net.Http.Extensions.dll 和 System.Net.Http.Primitives.dll 将在 GAC 中吗?还是我必须使用我的安装程序分发这些文件?
    • 三年后,在 .Net 4.6.2 中,这仍然没有修复。
    • 这里也一样!我在 2017 年 5 月 30 日,遇到了同样的问题
    • 2018 说你好,想加入俱乐部。
    猜你喜欢
    • 2013-09-01
    • 2014-11-17
    • 1970-01-01
    • 2011-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-16
    相关资源
    最近更新 更多