Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用clickonce在c#解决方案中部署外部文件_C#_Clickonce - Fatal编程技术网

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

使用clickonce在c#解决方案中部署外部文件,c#,clickonce,C#,Clickonce,我对Visual Studio Express 2010 c#edition有问题。 我有一个引用DLL的项目。此DLL具有标记为的外部Excel文件 构建操作=内容 复制到输出目录=始终复制 生成解决方案时,此Excel文件已正确复制到BIN\release solution文件夹中 但是,如果我尝试使用发布向导部署相同的解决方案,Excel文件不会复制到安装目录中 请,有人能帮我吗?尝试将此文件包含到解决方案中,并将“复制到输出目录”设置为“始终复制”您的文件似乎未列在“PublishFil

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

生成解决方案时,此Excel文件已正确复制到BIN\release solution文件夹中

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


请,有人能帮我吗?

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

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

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


为了使XLSX文件(或任何其他非生成文件)显示在该对话框中,您需要在“属性”窗口的“生成操作”中将is标记为“内容”。

您是说Excel文件仅由项目中包含的dll引用吗?这是一个辅助引用,ClickOnce将不会看到它并自动包含该文件

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


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

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

File.WriteAllBytes(DestinationFileName, Properties.Resources.MyResourceFile);

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

谢谢,在“应用程序文件”窗口中,引用的DLL正确列出,且“发布状态”设置为“包含”。但不知道如何在此菜单中还包括外部Excel文件…您可能希望将Excel文件也添加到项目中,设置其生成操作和属性,就像您对DLL文件所做的那样(复制到输出目录,如果更新或始终复制,则视您的选择而定)。谢谢,但如何添加此菜单中未列出的文件?@stexcec,我已经编辑了我的回复。将该文件标记为“内容”,它将显示。@PhilippSchmid,如果该文件位于另一个类库中怎么办?