为什么System.Net.Http没有打包?

时间:2017-05-03 07:33:50

标签: c#

我的应用程序具有对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 ......排序:

enter image description here

嗯,显然这里有些事情很困惑。 System.Net.Http同时被引用而未被引用。当我发布时,即使我已明确包含它,System.Net.Http.dll 仍未未发布。

1 个答案:

答案 0 :(得分:1)

项目的项目属性中的

是发布的,并且在那里有一个按钮(应用程序文件),您选择包含或排除文件 去那里包括dll需要项目 如果它不起作用 像存在文件一样添加dll并使其复制它总能工作