使用ClickOnce部署System.Net.Http.dll
我正在开发一个应用程序,它将与ClickOnce一起部署。在从.NET 4.5降级到.NET 4.0并替换修复错误引用之后,现在我在部署包方面遇到了问题。一些文件,最重要的是使用ClickOnce部署System.Net.Http.dll,.net,clickonce,.net,Clickonce,我正在开发一个应用程序,它将与ClickOnce一起部署。在从.NET 4.5降级到.NET 4.0并替换修复错误引用之后,现在我在部署包方面遇到了问题。一些文件,最重要的是System.Net.Http.dll未随应用程序一起部署。我做了一些检查,但无法得出确切的原因。我的怀疑是,创建包时希望目标计算机上已经存在此程序集。如果目标框架是.NET4.5,这是合理的,但现在不是.NET4。奇怪的是,System.Net.Http.Extensions.dll得到了正确的部署 两个文件的设置和版本号
System.Net.Http.dll
未随应用程序一起部署。我做了一些检查,但无法得出确切的原因。我的怀疑是,创建包时希望目标计算机上已经存在此程序集。如果目标框架是.NET4.5,这是合理的,但现在不是.NET4。奇怪的是,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>
..\packages\Microsoft.Net.Http.2.2.13\lib\net40\System.Net.Http.dll
假的
假的
..\packages\Microsoft.Net.Http.2.2.13\lib\net40\System.Net.Http.Extensions.dll
目标平台是.NET 4,部署的先决条件也是.NET 4和KB更新。
文件甚至不显示在“应用程序文件”对话框中:
有什么想法吗?如果其他所有操作都失败,我可能会尝试将程序集作为内容文件进行部署。
删除和重新添加引用没有任何区别。Microsoft在上发布的消息说: 这将在Visual Studio 2013的下一次更新中修复。在此之前,您必须使用将程序集添加为链接的变通方法 因此,我找到了下一个: 这是因为ClickOnce无法部署某些必需的程序集。作为解决方法,请执行以下操作:
在我的例子中,只需要添加一个库就足够了,我接受这个库是因为它链接到了一个支持线程,尽管它没有解决我的问题。但至少它让我知道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年说你好,我想加入俱乐部。