我正在尝试为解决方案中的所有项目设置一个默认位置OutDir并IntDir供其使用。例如:<OutDir>$(SolutionDir)bld\$(Platform)\$(ProjectName)\$(Configuration)\</OutDir>
当我在Directory.Build.props文件中设置此项时,它在 Visual Studio 属性对话框中看起来没问题;但是当我构建时,该$(ProjectName)部分是空的。这告诉我,当在 Directory.Build.props 中读取 OutDir 时,该宏不可用。
我尝试将其添加到Directory.Build.targets文件中,但它似乎完全被忽略了。
另一个目标是在此初始更改后不修改任何 vcxproj 文件。新项目将自动继承这些设置。
这可能吗?也许我将设置放在文件中的错误位置/顺序...?
这是 Directory.Build.props 的片段:
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets">
</ImportGroup>
<!-- Define macros for easy and consistent access to various parts of the tree -->
<PropertyGroup Label="UserMacros">
<GslInclude>$(SolutionDir)packages\Microsoft.Gsl.0.1.2.1\build\native\include</GslInclude>
<mySrcDir>$(SolutionDir)src\</mySrcDir>
<myBldDir>$(SolutionDir)bld\</myBldDir>
<myBldIntDir>$(SolutionDir)bld_int\</myBldIntDir>
</PropertyGroup>
<ItemDefinitionGroup />
<ItemGroup>
<BuildMacro Include="GslInclude"> <Value>$(GslInclude)</Value> </BuildMacro>
<BuildMacro Include="mySrcDir"> <Value>$(mySrcDir)</Value> </BuildMacro>
<BuildMacro Include="myBldDir"> <Value>$(myBldDir)</Value> </BuildMacro>
<BuildMacro Include="myBldIntDir"> <Value>$(myBldIntDir)</Value> </BuildMacro> …Run Code Online (Sandbox Code Playgroud)