使用clickonce在c#解决方案中部署外部文件

ste*_*cec 4 c# clickonce

我在使用Visual Studio Express 2010 c#版时遇到了问题.我有一个引用DLL的项目.此DLL有一个外部Excel文件,标记为Build Action = Content Copy to Output Directory = Copy Always

构建解决方案时,此Excel文件已正确复制到BIN\release解决方案文件夹中.

但是,如果我尝试使用"发布"向导部署相同的解决方案,则不会在安装目录中复制Excel文件.

拜托,有人可以帮帮我吗?

Phi*_*mid 8

打开发布的属性为您的ClickOnce项目.然后单击"应用程序文件..."按钮.这将启动一个对话框,您可以在其中控制发布包中包含的文件.

为了使您的XLSX文件(或任何其他非构建文件)出现在该对话框中,您需要在属性窗口的"构建操作"中将其标记为"内容".

  • @PhilippSchmid,如果这个文件在另一个类库中怎么办? (2认同)

Rob*_*Net 5

您是说 Excel 文件仅由您在项目中包含的 dll 引用?这是次要引用,ClickOnce 不会看到它并自动包含该文件。

首先,在您的 dll 上,我假设您的项目直接引用了它。如果是这样,那么请确保您已将其添加到您的项目中并将构建操作设置为“无”并将“复制到输出目录”设置为“不复制”。然后删除您对它的引用并重新添加它,将其指向现在包含在您的项目中的版本。将“复制本地”属性设置为“true”。这将确保 dll 本身被正确部署。

对于 Excel 文件,您必须将其添加到您的项目中。将构建操作设置为“内容”并将“复制到输出目录”设置为“始终复制”。它不会被自动包含,因为它是对 ClickOnce 应用程序的辅助引用,而不是像 dll 那样的直接/主要引用。