我正在开发一个与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更新。
文件甚至没有显示在“应用程序文件”对话框中:
有什么想法吗?如果所有其他方法都失败,我可能会尝试将程序集部署为内容文件。 删除和重新添加引用并没有什么区别。
答案 0 :(得分:17)
Microsoft在Visual Studio support thread上发布的消息说:
这将在Visual Studio 2013的下一次更新中修复。然后,您必须使用将程序集添加为链接的解决方法。
所以,我找到了下一个resolution (issue 8):
这是因为ClickOnce无法部署某些必需的程序集。要解决此问题,请执行以下操作:
在我的情况下,足以只添加一个库 System.Net.Http 。