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

时间:2011-10-11 16:16:25

标签: c# clickonce

我的Visual Studio Express 2010 c#版本存在问题。 我有一个引用DLL的项目。此DLL具有标记为的外部Excel文件 构建行动=内容 复制到输出目录=始终复制

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

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

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

5 个答案:

答案 0 :(得分:8)

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

为了使您的XLSX文件(或任何其他非构建文件)出现在该对话框中,您需要在属性窗口的Build Action 中标记为'Content'。

答案 1 :(得分:4)

您是说只有您在项目中包含的dll引用了Excel文件?这是辅助参考,ClickOnce将不会看到它并自动包含该文件。

首先,在您的dll上,我假设您的项目直接引用它。如果是这样,那么请确保已将其添加到项目中并将Build Action设置为“none”并将“copy to output directory”设置为“do not copy”。然后删除对它的引用并重新添加它,指向现在包含在项目中的版本。将“copy local”属性设置为“true”。这将确保dll本身正确部署。

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

答案 2 :(得分:0)

尝试将此文件包含在解决方案中并将“复制到输出目录”设置为“始终复制”

答案 3 :(得分:0)

您的文件似乎未在“PublishFiles”列表中列出。打开“项目属性”,转到“发布”选项卡,单击“应用程序文件”按钮,确保在“发布状态”为“包括”的文件列表中看到DLL文件。

答案 4 :(得分:0)

您可以通过将Excel文件作为资源插入,然后将其写出来来避免此问题:

volume=0:enable='between(t,1,3)+between(t,4,6)+between(t,7,9)+between(t,10,12)'

我假设Excel文件是您用来构建输出文件的某种模板。