我有一个解决方案,其中包含多个项目,我希望它们都能够访问一组在解决方案级别上定义的共享属性。
使用下面的代码,这基本上可以正常工作,并且我可以在BeforeBuild目标中使用导入的属性,但是我的问题是我无法在条件中使用导入的属性。
所以我在解决方案文件夹中的CommonSettings.targets文件中有以下内容:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="CommonSettingsTarget">
<PropertyGroup>
<MyCustomProperty>Sample</MyCustomProperty>
</PropertyGroup>
</Target>
</Project>
在我的项目文件中,我有:
<Project ToolsVersion="14.0" DefaultTargets="Build" InitialTargets="CommonSettingsTarget" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(SolutionDir)CommonSettings.targets" />
<ItemGroup>
<EmbeddedResource Include="EmbeddedDocument.txt" Condition=" '$(MyCustomProperty)' == 'Sample' " />
</ItemGroup>
<Target Name="BeforeBuild">
<Message Text="MyCustomProperty='$(MyCustomProperty)'" Importance="high" />
</Target>
</Project>
在上述代码中,我可以看到“MyCustomProperty='Sample'”被显示在输出窗口中,这很好。但是,当它作为条件的一部分(用于可选地包含嵌入式资源)时,该条件从未得到满足。
有没有办法让导入的属性与条件一起使用?