Dan*_*fer 13 c# csproj visual-studio-2010
我需要在~15个项目中设置一系列属性.有没有办法将这些属性放在一个文件中,并让所有项目文件使用某种导入指令引用一个文件,而不是复制每个项目文件中的属性?
编辑:澄清一下,我在谈论<PropertyGroup>
csproj文件中的元素.所有项目都需要相同的一系列<PropertyGroup>
设置.这些元素设置类似DebugSymbols
或的属性DefineDebug
,不用于引用源文件.
Dan*_*fer 18
该<Import>
元素可用于此目的,类似于使用自定义目标文件的方式.
可重用文件应如下所示:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<!-- Properties go here -->
</PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
请注意,需要具有声明的根Project
元素xmlns
- 如果没有它,VS将不会加载引用此文件的项目.
我已将我的属性设置保存在我的解决方案目录中,如ProjectBuildProperties.targets.
要将该文件包含在其他项目中,我已将其添加到csproj文件中:
<Import Project="$(SolutionDir)ProjectBuildProperties.targets"/>
Run Code Online (Sandbox Code Playgroud)
它的工作原理!
共享属性可以放入Directory.Build.props
文件中。这不需要显式导入到每个 csproj 中,这一切都由 MSBuild 负责,包括 props 文件的层次结构。文件内容示例:
<Project>
<PropertyGroup>
<DebugSymbols>true</DebugSymbols>
<DefineDebug>true</DefineDebug>
</PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)