在Visual Studio 2010中,我们有MSBuild for C ++项目。我们还可以向项目添加其他自定义属性文件“* .props”,这些文件只是MSBuild脚本。
导入的“some.props”文件是否可以知道其目录?
例如有“project.vcxproj”文件和“common.props”文件。 我想写点什么:
<IncludeDir>$( [and something for common.props file directory here] )\include</IncludeDir>
我应该在那里写什么?
答案 0 :(得分:1)
%programfiles%\ msbuild,可以使用$(MSBuildExtensionsPath)访问,是建议安装和保留静态的.props和.targets文件的地方。例如,许多发布构建过程的Microsoft团队将其.targets文件放在那里。
如果您计划为您的团队签入这些.props文件,或者修改它们,或者对于不同的源代码集可能有不同的文件,那么这不是一个好位置;它不在您的源代码旁边,它需要管理员权限才能修改。在这种情况下,我建议您将文件放在源代码附近,可能是树的根或子树,其中包含与其相关的所有项目。
答案 1 :(得分:0)
如果您可以将它们放在%Program Files%/ MSBuild /下,那么您可以使用MSBuildExtensionsPath属性。这解析为%Program Files%\ MSBuild。如果你不能把文件放在那里,那么另一种选择就是创建一个环境变量。在MSBuild中,您可以像属性一样访问env变量。例如,您可以<Message Text="Path :$(Path)"/>
打印出当前路径。