Windows Forms C#.net部署问题

时间:2009-05-08 22:32:59

标签: winforms deployment

我刚刚完成了一个WinForms应用程序,它的工作效果很好!现在,时间部署。问题是,我不想创建一个安装文件,而是一个可执行文件,例如'myApp.exe'。这样做的原因是因为它将在CD媒体上重新分发,并且当CD插入用户的PC时,它应该作为独立的应用程序自动运行。

这里有什么想法吗?

其次,如何在应用程序中创建CD中包含的“.txt”文件的引用?我想提供文件的链接,但我不确定如何进行路径引用。

TIA ......我真的很困惑!

4 个答案:

答案 0 :(得分:2)

当您在代码中引用“.txt”文件时,只需使用执行应用程序的相对路径。例如,如果您的.txt文件与可执行文件位于同一目录中,请参考它们,不带任何路径(“filename.txt”),或者您可以使用(“。\ filename.txt”)。

至于不安装您的应用程序,只需确保您没有使用需要在客户端上安装的任何第三方库,只需刻录apps / bin /目录的内容并使用autorun.ini文件启动你的exe。

答案 1 :(得分:1)

您可以在exe中使用嵌入式资源,而不是使用单独的文件:http://jopinblog.wordpress.com/2007/11/12/embedded-resource-queries-or-how-to-manage-sql-code-in-your-net-projects/

答案 2 :(得分:1)

@Shalan,回复:你的回答:

小心!你会让你的用户和维护程序员感到不安!

我已经看到并修复了这个错误至少十几次。

您确定知道当前目录是什么吗?例如,OpenFileDialog和SaveFileDialog可以更改它,然后您将无法找到您的.dot文件。

如果用户使用其他工作目录启动应用程序,该怎么办?然后你也会失败。请记住,您无法控制工作目录 - 如果用户将其从默认值更改,您的应用将会失败。

如果您必须找到应用程序可执行文件的路径,请考虑使用Application.StartupPathSystem.IO.Path。 E.g:

string dotSubPath = System.IO.Path.Combine("Assets", "MyDocument.dot");
string templatePath = System.IO.Path.Combine(Application.StartupPath, dotSubPath);

这将始终根据应用程序的启动目录获取路径,而不仅仅是工作目录。

答案 3 :(得分:0)

对于那些感兴趣的人,我需要一个来自应用程序可执行文件的引用路径,对我来说也有用的是使用“Environment.GetCurrentDirectory”

例如,我提供了我的MS Word .dot模板的路径:

Object templatePath = Environment.GetCurrentDirectory + "\\Assets\\MyDocument.dot";