Visual Studio 2008 - 发布C#控制台应用程序的问题

时间:2009-08-31 14:57:19

标签: c# visual-studio

我有一个用Visual Studio 2008编写的C#控制台应用程序。 通常我只是构建应用程序,然后从'Release'文件夹中复制文件,但这次尝试通过发布应用程序'正确'来实现。

我浏览了“发布向导”,最后在指定的文件夹中找到了“Setup.exe”文件。在另一台计算机上运行此安装文件时,安装失败并通过以下错误消息指示:

Cannot download the application. The Application is missing required files...

当我选择“详细信息”按钮时,错误日志显示程序正在尝试从最后一个版本目录下载文件(即1_0_0_4)。

我做错了什么? (除了累了......)
显示我取消激活版本自动递增?

3 个答案:

答案 0 :(得分:9)

除非您有正当理由这样做,否则我会放弃发布,只需返回XCopy安装。 (并且通过有效,我的意思是除了有人告诉你这是“正确”的方式。)我基于以下论点提出这个建议:

  1. 我们在所有WinForms应用程序中使用了ClickOnce一段时间,但最终它变得比它值得更麻烦。首先,您需要处理安全证书。当我们用一个具有不同名称的新服务器替换服务器时,我们遇到了问题,然后当我们更换开发机器时遇到问题等。
  2. 你说这是一个控制台应用程序。对于简单的控制台应用程序,ClickOnce发布似乎有点过分,除非您需要在安装中包含第三方依赖项。
  3. 不要误解我的意思,我喜欢使用ClickOnce轻松地将更新放在那里,而且当它是最佳选择时我们仍然使用它。但是,在您的情况下,我认为XCopy部署应该足以用于简单的控制台应用程序。

答案 1 :(得分:1)

不知道您在向导,Web或CD中选择了什么,setup.exe文件需要能够引用它的安装文件。如果使用CD方法,您会在输出目录中注意到修订目录,例如1_0_0_4,其中保留了应用的每个版本。我同意@David_Stratton,除非你真的需要使用一键发布,否则不要。只需使用xcopy(robocopy),zipfiles等,它将大大降低你的压力水平。

答案 2 :(得分:0)

David Stratton所说的一切都是正确的。 ClickOnce对你正在尝试做的事情来说太过分了,通过Visual Studio发布总是给我带来麻烦。

如果您正在寻找为其他人生成安装程序,我可能会建议您查看NSIS。生成仅从您的/Release/目录中获取文件的完整安装程序相对简单,并提供大量示例代码以使安装程序快速运行。获得工作脚本后,使安装程序像右键单击并单击编译一样简单。