Visual Studio生成事件宏 - 解决方案配置名称

17

在我的“后生成事件(Post-build event)”中,我调用一个批处理文件并传递当前的生成配置。

C:\Dev\Project\Build\build.bat /$(Configuration)

这将项目配置名称传递给构建脚本。

是否有任何方法可以传递当前的解决方案配置名称

3个回答

2
我为此创建了一个VS2010扩展,它允许您使用$(SolutionConfiguration)$(SolutionPlaform)$(BuildMacro)生成宏。您可以从这里下载源代码并自行构建。
显示一些代码,它仅涉及注册到IVsUpdateSolutionEvents VS的UpdateSolution_Begin方法并在那里设置一些Environment.SetEnvironmentVariable()
        _IVsSolutionBuildManager = (IVsSolutionBuildManager)GetService<SVsSolutionBuildManager>();
        _UpdateSolutionEvents = new UpdateSolutionEvents(); // IVsUpdateSolutionEvents
        int hr;
        uint pdwCookie;
        hr = _IVsSolutionBuildManager.AdviseUpdateSolutionEvents(_UpdateSolutionEvents, out pdwCookie);

好的扩展,但在Visual Studio 2019中有没有内置的东西? - Fedor
1
抱歉,该扩展已经不再维护,现在可以由其他人接手。老实说,我建议通知VisualStudio开发人员,让他们在这个和这个RFE中添加此功能。 - ceztko

1

不直接。当您在属性字段上使用“编辑/宏”时,列出的唯一配置名称是您已经拥有的项目的名称。

但是,您可以定义自己的宏。对于每个解决方案配置,请创建一个新的属性表,使用“用户宏”选项卡来定义一个名为“SolutionConfiguration”的宏,其值为配置的名称,然后将此属性表添加到解决方案中每个项目的适当项目配置中。

如果有更好的方法,我很乐意学习。


能否为解决方案配置创建属性表?我知道你只能为项目配置创建属性表。请问你能提供更多细节吗? - 23W

0

有一个属性SolutionConfigurationContents,它是由Msbuild在处理解决方案文件时创建的,其中包含解决方案配置。当从VS构建时,它将包含项目(而不是解决方案)配置。


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