使用ClickOnce部署System.Net.Http.dll

Nik*_*vić 10 .net clickonce

我正在开发一个与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>
Run Code Online (Sandbox Code Playgroud)

目标平台是.NET 4,部署先决条件也是.NET 4和KB更新. 在此输入图像描述

文件甚至不显示在"应用程序文件"对话框中 在此输入图像描述

有任何想法吗?如果所有其他方法都失败,我可能会尝试将程序集部署为内容文件.删除和重新添加引用并没有什么区别.

Ser*_*lyi 17

微软在Visual Studio支持线程上发布消息说:

这将在Visual Studio 2013的下一次更新中得到修复.然后,您必须使用将程序集添加为链接的解决方法.

所以,我找到了下一个决议(问题8):

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

  1. 右键单击该项目,然后选择"添加现有项"
  2. 浏览到HttpClient net40包文件夹
  3. 在文件名文本框中输入.
  4. 按住CTRL,选择System.Net.Http.dll和System.Net.Http.Primitives.dll
  5. 单击"添加"按钮旁边的向下箭头,然后选择"添加为链接"
  6. 在Solution Explorer中,按住CTRL选择System.Net.Http.dll和System.Net.Http.WebRequest.dll
  7. 右键单击选择,选择"属性",然后将"复制到输出目录"更改为"始终复制"
  8. 重新发布

在我的情况下,足以只添加一个库System.Net.Http.

  • 三年之后,在.Net 4.6.2中,这仍然没有修复. (8认同)
  • 同样在这里!我在2017年5月30日,遇到了同样的问题 (3认同)
  • 2018年嗨,并希望加入俱乐部. (2认同)