我的应用程序具有对System.Net.Http
的NuGet引用(显然,还有许多其他引用)。
当我使用" Publish"构建此应用程序的包时,从CD"中选择"选项,它将安装编译到本地文件夹中,所有二进制文件都打包到.deploy
个文件中。全部,即System.Net.Http.dll
除外。
我尝试过许多不同的解决方法,更改项目中System.Net.Http
引用的属性,然后删除NuGet引用并将其添加为.NET Framework中的程序集引用。无所事事。这个特殊的DLL似乎特别耐受与其他二进制文件一起打包。
如果它有所不同,我使用的是.NET Framework 4.6.2。
为什么会发生这种情况?如何解决?
更新
基于以下评论,我调查了项目属性>发布>应用文件。 System.Net.Http.dll
未在选项中列出。所以我通过更改"发布状态" System.Net.Http.Extensions.dll
至"包括" (而不是"包括(自动)"),它在我的项目文件中添加了一个部分,然后我编辑该部分以删除"。扩展",因此:
<ItemGroup>
<PublishFile Include="System.Net.Http">
<Visible>False</Visible>
<Group>
</Group>
<TargetPath>
</TargetPath>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>Assembly</FileType>
</PublishFile>
</ItemGroup>
现在我的项目应用程序文件列表包含System.Net.Http
......排序:
嗯,显然这里有些事情很困惑。 System.Net.Http
同时被引用而未被引用。当我发布时,即使我已明确包含它,System.Net.Http.dll
仍未未发布。
答案 0 :(得分:1)
是发布的,并且在那里有一个按钮(应用程序文件),您选择包含或排除文件 去那里包括dll需要项目 如果它不起作用 像存在文件一样添加dll并使其复制它总能工作