【问题标题】:Why does System.Net.Http not get packaged? [duplicate]为什么 System.Net.Http 没有被打包? [复制]
【发布时间】:2017-05-03 07:33:50
【问题描述】:

我有一个应用程序有一个对System.Net.Http 的 NuGet 引用(显然,还有许多其他引用)。

当我使用“发布”构建此应用程序的包并选择“从 CD”选项时,它会将安装编译到本地文件夹中,所有二进制文件都打包到 .deploy 文件中。全部,即除了System.Net.Http.dll

我尝试了许多不同的解决方法,更改项目中 System.Net.Http 引用的属性,然后删除 NuGet 引用并将其添加为 .NET Framework 中的程序集引用。无所事事。这个特殊的 DLL 似乎具有独特的抗与其他二进制文件一起打包的能力。

如果有什么不同,我正在使用 .NET Framework 4.6.2。

为什么会发生这种行为?如何解决?

更新: 根据下面的 cmets,我调查了 Project Properties > Publish > Application Files。 System.Net.Http.dll 未在选项中列出。所以我通过将System.Net.Http.Extensions.dll 的“发布状态”更改为“包含”(而不是“包含(自动)”)来破解它,这在我的项目文件中添加了一个部分,然后我对其进行了编辑以删除“.Extensions” ,因此:

<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仍然未发布。

【问题讨论】:

  • 您是否将其包含在您的发布中?
  • @ShahroozAnsari 你什么意思?哪里可以选择在发布过程中包含(或排除)任何特定文件?
  • 检查它是否包含在项目属性中 > 发布 > 应用程序文件
  • 在您的项目的属性中发布,并且您可以选择包含或排除文件的按钮(应用程序文件)
  • @ShahroozAnsari 那么这就是疯狂的事情。我打开了那个对话框,System.Net.Http.dll 甚至没有出现在列表中!这是怎么回事?!

标签: c#


【解决方案1】:

在您的项目的项目属性中发布,并且您可以选择包含或排除文件的按钮(应用程序文件) 去那里包括dll需要项目 如果它不起作用 添加像存在文件一样的dll并使其始终复制它会起作用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-02-20
    • 2021-05-12
    • 1970-01-01
    • 1970-01-01
    • 2022-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多