【问题标题】:Content file of dependency is not included in deployment依赖的内容文件不包含在部署中
【发布时间】:2016-03-31 09:12:50
【问题描述】:

我有一个带有 CLI 应用程序和 DLL 的项目,它是 CLI 应用程序的依赖项。

DLL 项目包含一个本地 DLL,它通过 P/Invoke 使用。此 DLL 被标记为 Content。当我构建我的项目时,DLL 被复制到输出目录并且我的应用程序运行良好。

当我发布 ClickOnce 部署时。 DLL 不包含在生成的包中,我的应用程序将无法正确运行。

对类似问题的回答始终建议将文件设置为 Content,我已经拥有该文件,但对问题没有影响。其他答案建议确保该文件包含在发布选项的 Application Files 部分中,但该文件未在此处列出。

【问题讨论】:

  • 如果该文件未列在“应用程序文件”部分中,那么这是一个问题。尝试勾选“显示所有文件”并查看是否可以在列表中找到它 - 如果可以,请将发布状态更改为 include,将下载组更改为 required 和散列到 include.
  • @MatthewWatson "显示所有文件" 仅列出 .pdb 文件。
  • 有同样的问题!

标签: c# visual-studio clickonce


【解决方案1】:

我找到了Why doesn't ClickOnce in Visual Studio deploy content files from dependent assemblies? 并测试了建议的解决方案。它们都不适合我。

然后我意识到在阅读 Click-once publish addtional files stopped with VS 2012 后,Visual Studio 更新中的行为可能被破坏了。

所以,最后,唯一对我有用的就是简单地将 DLL 添加到我的主 CLI 应用程序中。这很令人沮丧。

【讨论】:

  • 我们有许多使用非托管 DLL 的 ClickOnce 应用程序,如果我们像您一样将它们添加到项目中,它们会自动安装这些文件。它们都工作正常(我们使用的是 VS2015,但它也适用于 VS2012 和 VS2013),所以我不确定为什么它不适合你......
  • @MatthewWatson 如果将文件添加到已发布的项目中,它就可以正常工作。将文件添加到引用的依赖项时,它不起作用。
  • 哦!对不起,我误解了那部分。然后我们必须这样做:我们需要像您一样将 DLL 显式添加到 ClickOnce 应用程序。
猜你喜欢
  • 2014-02-10
  • 2013-11-05
  • 1970-01-01
  • 2010-09-30
  • 1970-01-01
  • 1970-01-01
  • 2021-10-31
  • 2011-01-16
  • 2019-10-26
相关资源
最近更新 更多