Dav*_*eer 25 debugging release visual-studio
当然,默认情况下,Visual Studio会为Debug和Release构建创建单独的bin文件夹.从外部依赖的角度来看,我们遇到了一些小问题,有时候我们需要发布二进制文件,有时候需要调试.只需在所有项目上拥有一个bin文件夹,并使其成为Debug和Release的目标,这将使生活稍微容易一些.然后我们可以将外部脚本等指向一个位置.
一位同事质疑为什么我们不能这样做 - 更改VS项目设置以转到同一个bin文件夹?我承认我无法想到保留它们的好理由,除了能够在我的本地文件系统上看到哪些是Debug,哪些是Release.但那是什么; 那会有什么收获?
我的问题:
我不是在问为什么要有单独的Debug和Release版本.我理解每个人的不同之处和地点.我的问题是将它们放在单独的文件夹中.
And*_*dky 49
Dave,如果你将Debug和Release编译成单个文件夹,你可能会遇到这样的情况:从Release转换到Debug之后不会重新编译某些dll-s,反之亦然,因为dll文件比源文件更新.是的,"重建"应该对你有所帮助,但是如果你忘了这一点 - 你可以多花些时间进行调试.
rik*_*koe 17
我看到它的方式,这只是开发人员机器上的一个便利,允许他们同时编译和运行Debug和Release版本.
如果您在Visual Studio中运行脚本或工具,则IDE允许您使用ConfigurationName和其他宏来获取与配置无关的路径.
如果从命令行外部运行脚本和工具(即,您正在围绕它构建某种类型的发布或部署过程),最好在构建服务器上执行此操作,其中Debug和Release之间的区别消失.
例如,当您从命令行(在构建服务器上)调用msbuild时,您可以为Debug或Release指定Configuration属性,并将OutputPath属性指定为仅构建到一个位置(无论配置如何).
我使用单独文件夹的一个原因是它保证我只生成使用Release-build代码的安装程序.我使用WiX,它允许我指定我想要包含在安装程序中的文件的确切路径,因此我最终在Release文件夹中指定路径.(当然,您可以使用普通的VS安装程序执行相同操作,因此这不是重点.)如果您在构建之前忘记将项目切换到Release,则除非您在Release中使用旧代码,否则不会构建安装程序文件夹,在这种情况下你最终得到一个旧的安装程序,所以这是一个陷阱.我解决这个问题的方法是在WiX安装程序项目上使用post-build事件,在WiX安装程序构建之后清除release文件夹.