Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.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#可执行文件?_C#_Visual Studio_Visual Studio 2015_Exe - Fatal编程技术网

如何发布C#可执行文件?

如何发布C#可执行文件?,c#,visual-studio,visual-studio-2015,exe,C#,Visual Studio,Visual Studio 2015,Exe,我用Visual Studio 2015完成了我的第一个相对简单的C#项目。现在是发布它的时候了 最好的选择是一个独立的exe。那太理想了 但在我失去了实现这一目标的希望后,我觉得安装程序还可以。VS甚至提供了一种可能性,但它根本不起作用。我可以运行setup.exe,但不能运行.application文件。我试过很多方法,但都不管用 1-2周后,我能想到的唯一解决方案是将发行版或调试目录发布为zip文件,并告诉用户将其解压缩到某个地方,然后创建指向.exe文件的链接。但即使这样也不行!似乎文件

我用Visual Studio 2015完成了我的第一个相对简单的C#项目。现在是发布它的时候了

最好的选择是一个独立的exe。那太理想了

但在我失去了实现这一目标的希望后,我觉得安装程序还可以。VS甚至提供了一种可能性,但它根本不起作用。我可以运行setup.exe,但不能运行.application文件。我试过很多方法,但都不管用

1-2周后,我能想到的唯一解决方案是将发行版或调试目录发布为zip文件,并告诉用户将其解压缩到某个地方,然后创建指向.exe文件的链接。但即使这样也不行!似乎文件不仅依赖于当前文件夹中的文件,而且还依赖于父目录!现在唯一的解决方案是压缩整个VisualStudio项目

我不知道为什么所有的解决方案都不适合我。我的项目没有那么复杂,我只是想以某种方式发布它:(

但在我失去了实现这一目标的希望后,我觉得安装程序还可以

为什么?很简单。即使有DLL,也只需压缩它们——我有很多低成本的游戏都是压缩文件

VS甚至提供了一种可能性

不,不是。只有极为过时的版本才会这样做。VS安装程序项目已经退役。WIX工具集是这些天的发展方向——在谷歌上查找

1-2周后,我能想到的唯一解决办法

我建议您使用Windows安装程序。Office和Visual Studio都以安装程序的形式提供

要走的路是WIX工具包

似乎文件不仅仅依赖于当前文件中的文件 文件夹,而且在父目录上

这里的问题是什么?将文件路径硬编码到可执行文件中会导致程序在复制到其他位置时无法运行?猜猜如何解决此问题?不要硬编码路径。这不是安装程序的问题-这只是一个有缺陷的程序。除非这样做,.NET exe中没有硬编码路径

在你做更糟糕的事情之前:永远不要在exe文件夹中存储可编辑的数据-这是特殊文件夹的用途。一旦正确安装,exe及其所在的文件夹(实际上是整个安装文件夹)对于普通用户来说是只读的。Windows标准版大概有10年左右的时间了…

我已经使用了很好的成功。它可以很好地处理更新故事。Clickonce也可以工作。Squirrel用于Atom和Slack桌面应用,Clickonce用于Github桌面应用。

您可以使用它来制作安装程序。您应该将它添加到VisualStudio,创建配置文件并进行部署

我用过WiX,它的安装包也不错

还有另一个产品:。我没有使用它

快速回答:


我想您现在不会使用商业产品。

您的项目是否有任何必须安装的依赖项?用户是否可以不从发布文件夹运行EXE?他们会出现什么错误?对父目录的依赖项意味着您有硬编码的路径。除了复制二进制文件之外,您不必执行任何操作和配置文件。没有安装程序可以修复硬编码路径或依赖项请,定义
不起作用
,它执行但引发异常?,它根本不执行?我可以从发布文件夹运行exe。但是当我将发布文件夹移到其他地方时,我无法再运行。“不起作用”意味着它没有启动。什么也没有发生。我甚至从来没有遇到过异常:/你遇到了异常,你收到了错误,但问题是,你是否编写了应用程序来处理它们,并在不同的环境中测试时显示或记录它们。;)Wix有一点学习曲线…实际上他们有-输出是一个标准的MSI。。。很难看出是什么造成的。我认为WIX是一种真正实现visualstudio安装程序(商业)的技术——我记得在一篇博客文章中读到过这篇文章。。。啊,维基百科没有商业项目?你开玩笑。。。“在2004年发布之后,微软已经使用WiX来打包Office2007、SQLServer2005、VisualStudio2005/2008和其他产品”,WiX的学习曲线很低。这是XML中非常直接的MSI规范。MSI有一个学习曲线,但当你做一个安装程序。。。。最好了解安装程序如何在windows上工作;)几年前,我从Installshield推出了第一款产品,WIX只花了我2-3个小时就完成了。同意,这是我第一次需要一段时间来管理它;)Clickonce也有效,Squirrel的口号是它与Clickonce相似,但有效:)