临时调试版本和最终应用程序发布

4

我有一个关于VS 2008中debug和release的问题。

我一直在开发一个应用程序,虽然它还没有完全完成,但主要功能已经有了。因此,我现在想把它复制给协助文档编写的人,让他们试用一下,感受一下我的工作成果。

现在的问题是如何将它提供给他们。有人告诉我只需从debug/bin文件夹中复制.exe文件并将其放入USB中即可。但在测试时,如果我将这个.exe文件在其他地方运行(不在该文件夹中),它会崩溃。我现在已经找出了原因:

var path = ConfigurationManager.AppSettings["PathToUse"];
var files = Directory.GetFiles(path);

抛出了一个空引用,导致App.config文件未被使用。如果我将该文件与.exe文件一起复制,它就能正常工作。

所以我的问题实际上是关于如何管理这种情况的最佳方法。提供一个可工作的副本给人们的最佳方式是什么?是否有关于准备发布应用程序的参考资料 - 使所有内容打包在一起并安装在一个干净的结构化文件夹层次结构中的参考资料?

1个回答

1
如果你想要安全起见,可以将 debug/bin 文件夹中的所有内容都复制一遍。如果使用 VS 中的下拉菜单切换到 release 模式,然后编译项目,那么在 release/bin 文件夹下会有更少的文件,因为很多与调试有关的文件不包括在内。
如果你引用了第三方 DLL(比如下载了 log4net 或类似的东西),那么你可以直接将它们放在 exe 相同的文件夹里面。这被称作 side-by-side 部署,在我看来是最简单、最易于测试的方法之一。
你可以搜索 XCOPY 部署以了解更多相关信息。
你还可以进一步将 bin 文件夹压缩成一个 zip 文件等归档格式,以便用户轻松解压缩,或者可以使用像 WIX 或 NSIS 这样的工具创建安装程序来提取和复制文件。

如果在debug/bin和/或release/bin文件夹中没有文件,则可能需要在VS中选择该文件,并在文件的属性中选择一个选项,告诉它在编译项目时进行复制。这就是使其出现在bin文件夹中的原因。还要注意,这些配置对于发布和调试是分开的,您需要切换下拉菜单到Release并再次进行相同的更改,以便您的发布和调试版本行为相同。这是因为有时需要在调试中使用某些内容,但不需要在发布中使用。 - AaronLS
1
或者在设置选项之前,可以选择“所有配置”选项,这样就不必多次设置了。(当然,通常我在调试时已经更改了它,才想起来要这么做...) - SamB
@SamB 哈哈,我也是,有时候直到出了问题才发现。 - AaronLS

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接