Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.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
C# 发布winforms应用程序_C#_Winforms_Clickonce_Publishing - Fatal编程技术网

C# 发布winforms应用程序

C# 发布winforms应用程序,c#,winforms,clickonce,publishing,C#,Winforms,Clickonce,Publishing,我已经创建了winforms程序,现在我想发布(构建?部署?)它。到目前为止,我使用ClickOnce发布并安装了它,结果如下: 除了可执行文件之外,是否可以将所有这些文件都放在其他文件夹中(可以是Resources、bin或其他任何文件夹)?简单地将文件移动到那里会引发错误,因为我认为由于没有定义新路径,可执行文件无法访问它们。到目前为止,我的想法是要么创建一个简单的.exe快捷方式,要么创建一个新的可执行文件,运行另一个文件夹中的main.exe,但这并不是我想要的 我正在使用Visual

我已经创建了winforms程序,现在我想发布(构建?部署?)它。到目前为止,我使用ClickOnce发布并安装了它,结果如下: 除了可执行文件之外,是否可以将所有这些文件都放在其他文件夹中(可以是Resources、bin或其他任何文件夹)?简单地将文件移动到那里会引发错误,因为我认为由于没有定义新路径,可执行文件无法访问它们。到目前为止,我的想法是要么创建一个简单的.exe快捷方式,要么创建一个新的可执行文件,运行另一个文件夹中的main.exe,但这并不是我想要的

我正在使用Visual Studio 2015社区。我还遇到了一个名为InstallShield的程序,它允许我创建自定义设置,但我找不到有关我的问题的任何信息

编辑。以下是使用ClickOnce发布的文件的外观:

是的,您可以使用ClickOnce将DLL放在子文件夹中,但不能只移动文件。这是因为ClickOnce应用程序使用.manifest文件来描述部署的每个文件。如果清单与部署目录不匹配,那么ClickOnce将崩溃。这是一个安全问题


我不知道如何通过Visual Studio的发布界面自动执行此操作,但在构建应用程序后,请查看Mage.exe和MageUI.exe工具,以便您可以编辑清单以将文件包含在子文件夹中。

这是您的构建目录吗
ClickOnce
publish目录并没有这么杂乱。是的,这正是我从ClickOnce得到的。你是说你单击了主项目属性页“publish”选项卡页上的“publish Now”按钮,这就是被转储到标有“Publishing Location”的目录中的内容?或者你是说你做了一个构建,然后查看了项目目录的“bin/Release”或“bin/Debug”子目录,这就是你看到的?我犯了一个错误,第一张图片显示了我的文件夹在使用ClickOnce创建的安装文件后的样子。第二张图片供参考。ClickOnce应用程序并非真正设计为从安装目录运行。如果用户从web或“开始”菜单运行此操作,他/她将看不到任何内容。