Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.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# VisualStudio在部署C应用程序时会生成一个奇怪的文件树_C#_Visual Studio 2012_Publish_Directory - Fatal编程技术网

C# VisualStudio在部署C应用程序时会生成一个奇怪的文件树

C# VisualStudio在部署C应用程序时会生成一个奇怪的文件树,c#,visual-studio-2012,publish,directory,C#,Visual Studio 2012,Publish,Directory,在发布应用程序时,是否有方法控制哪些文件以及如何部署文件 我正在使用C编写Windows窗体应用程序。我正在使用发布功能创建安装文件并安装应用程序。然而,当安装应用程序时,它似乎将文件安装在一堆不同的文件夹中,而不仅仅是一个地方。我正在Windows 8.1上使用Visual Studio 2012 应用程序安装在用户的AppData文件夹中,这很好,但从那里看,树如下所示: AppData\Local\Apps\2.0\Data\XW1K5QEX.XAT\QT90D7HP.HRR\aprs..

在发布应用程序时,是否有方法控制哪些文件以及如何部署文件

我正在使用C编写Windows窗体应用程序。我正在使用发布功能创建安装文件并安装应用程序。然而,当安装应用程序时,它似乎将文件安装在一堆不同的文件夹中,而不仅仅是一个地方。我正在Windows 8.1上使用Visual Studio 2012

应用程序安装在用户的AppData文件夹中,这很好,但从那里看,树如下所示:

AppData\Local\Apps\2.0\Data\XW1K5QEX.XAT\QT90D7HP.HRR\aprs..tion_6e18985c58ead43c_0001.0000_19946cd48dfad6aa\Data\1.0.0.0
此文件夹包含user.config,仅此而已

AppData\Local\Apps\2.0\VZL1JHLE.0GG\LXJZWQB7.8JG\aprs...exe_6e18985c58ead43c_0001.0000_en_8cf5993e048f7d9e
这个文件夹包含两个文件application.exe.config,我认为它有默认的用户设置和应用程序图标

AppData\Local\Apps\2.0\VZL1JHLE.0GG\LXJZWQB7.8JG\aprs..tion_6e18985c58ead43c_0001.0000_19946cd48dfad6aa
AppData\Local\Apps\2.0\VZL1JHLE.0GG\LXJZWQB7.8JG\manifests
此文件夹似乎包含除user.config之外我需要的所有应用程序文件。它有application.exe.config和应用程序图标的副本

AppData\Local\Apps\2.0\VZL1JHLE.0GG\LXJZWQB7.8JG\aprs..tion_6e18985c58ead43c_0001.0000_19946cd48dfad6aa
AppData\Local\Apps\2.0\VZL1JHLE.0GG\LXJZWQB7.8JG\manifests
最后一个文件夹包含两个.manifest和两个.cdf ms文件,它们也在上面的文件夹中

我不明白为什么要创建这么多文件夹,为什么我有8个.manifest文件.cdf ms文件,2个图标文件和3个.config文件

我希望将应用程序安装在一个或两个文件夹中:

AppData\Local\Application Name
也许:

AppData\Local\Application Name\Data
就这样

我在谷歌上花了几个小时试图解决这个问题,但我一直在寻找如何更改安装VisualStudio的位置的建议,而不是使用VisualStudio创建的应用程序

如果应用程序正在安装从项目中删除的项的工件,那么必须有一种方法来清理这些工件


谢谢

发布功能AFAIK对于web应用程序非常有效。对于windows窗体应用程序,它需要您创建一个一键式部署应用程序等,其行为与web项目不同

如果您想控制发布哪些文件以及这些文件指向哪些文件夹,最好创建一个部署项目或Wix安装项目


此外,对于WinForms应用程序,相关文件会复制到bin文件夹bin\debug或bin\release,因此您只需获取该文件夹并对其进行压缩或复制即可部署应用程序。基本上,您甚至可以将其作为生成后事件批处理命令来执行

为Windows程序创建一个专业的安装包本身就是一门艺术,如果安装场景稍微复杂的话,可能需要与创建程序一样长的时间。我推荐WiX安装程序,但学习它需要一段时间。我相信,一键式安装有一些局限性——至少WiX的人是这么说的-顺便说一下,在AppData中安装程序并不常见。这是应用程序应该放置其工作文件的地方,等等。程序通常安装在程序文件或程序文件x86中。在错误的地方安装程序可能会导致可怕的UAC出现问题。@RenniePet谢谢您的反馈。我对全面安装的开发还不够深入,我过去也做过一些,但我希望默认的发布功能比简单的alpha部署要干净得多。对于一种不涉及Windows Installer MSI文件的更简单的Windows安装程序,我相信这个程序非常流行:Inno安装我自己从未尝试过。