是否可以根据构建是从IDE还是从命令行运行来控制构建事件批处理文件的行为。
我们的产品有多个版本。它包含需要注册的COM对象。此COM注册由从相应项目中的自定义生成步骤调用的批处理文件完成。
问题是,如果开发人员在后台运行命令行中的一个版本的自动构建,而在IDE中处理另一个版本,则自动构建将从IDE中未处理的版本注册COM对象
那么,有没有办法控制是否根据构建是在IDE中完成还是使用devenv从命令行进行注册?
感谢。
答案 0 :(得分:0)
我不知道VS“知道”它是如何运行的。如果没有某个地方标记它是否从命令行运行,我会感到惊讶,但是我们可能无法访问它。
也许这可以使用构建配置来解决。从命令行构建时,将构建配置值设置为排除COM注册步骤的配置。我认为你应该能够在你的帖子构建批处理中写入适当的构建配置的测试(我几乎可以肯定VS有一个构建宏的值用于当前构建配置)并相应地分支逻辑。当然,这意味着每个开发人员都需要了解这一点。虽然您可以在项目中创建一个批处理文件来执行这些构建,其中包括必要的构建开关/值。
我很好奇你的情况是你有一个开发人员同时以两种不同的方式构建同一个应用程序。
答案 1 :(得分:0)
这可能是更简单的方法:将长时间运行的后台构建放在另一台机器上。如果您没有其他物理机的预算(尽可能便宜),请在VM上执行。那里有免费的VM主机。我在运行在我的开发桌面上的VMWare Server运气方面相当不错。你需要足够的磁盘空间和内存,但两者都很便宜。