我正在维护大量具有20多种配置的项目,并且仍然会不时添加一些配置。将此类更改传播到所有项目中是我们现在使用VCBuild所做的。我开始尝试使用MSBuild,似乎有一些逻辑将它们提取到单独的属性表中,允许在一个地方进行更改。我该怎么做?
请注意,当我尝试这样做时,Visual Studio抱怨项目中没有配置。我试图实现它的一个例子如下。提前谢谢。
configurations.props:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Default" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug_Unicode|Win32">
<Configuration>Debug_Unicode</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
...
</ItemGroup>
凸出:
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup Label="Globals">
<ProjectName>projname</ProjectName>
<ProjectGuid>{XXX...XXX}</ProjectGuid>
<RootNamespace>proj</RootNamespace> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<Import Project="configurations.props" />
<PropertyGroup Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="PropertySheets">
<Import Project="other.props" /> </ImportGroup>
...
答案 0 :(得分:2)
据我所知(在我看来)这是VS 2010测试阶段的一个错误,但遗憾的是修复程序没有进入发布版本。我会尝试挖掘连接问题。您可能需要考虑使用MSBuild Project对象模型生成一些代码,或使用相同的方式对项目文件进行一些构建时验证,但除此之外我们还要等待修复。
答案 1 :(得分:0)
这可以在VS2012中发布,因为我发布了here,未在VS2010中测试过。不明白为什么它不起作用。