【问题标题】:Reusable PropertyGroup elements in a csproj filecsproj 文件中的可重用 PropertyGroup 元素
【发布时间】:2012-02-22 18:27:17
【问题描述】:

我需要在大约 15 个项目中设置一系列属性。有没有办法将这些属性放在一个文件中,并使用某种导入指令让所有项目文件引用一个文件,而不是在每个项目文件中复制属性?

编辑:为了澄清,我说的是 csproj 文件中的 <PropertyGroup> 元素。所有项目都需要相同系列的<PropertyGroup> 设置。这些元素设置属性,如DebugSymbolsDefineDebug,不用于引用源文件。

【问题讨论】:

    标签: c# visual-studio-2010 csproj


    【解决方案1】:

    <Import> 元素可用于此目的,类似于使用自定义目标文件的方式。

    可重用文件应如下所示:

    <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
        <PropertyGroup>
            <!-- Properties go here -->
        </PropertyGroup>
    </Project>
    

    请注意,根 Project 元素必须带有 xmlns 声明 - 没有它,VS 不会加载引用此文件的项目。

    我已将解决方案目录中的属性设置保存为 ProjectBuildProperties.targets。

    为了在其他项目中包含该文件,我已将其添加到 csproj 文件中:

    <Import Project="$(SolutionDir)ProjectBuildProperties.targets"/>
    

    它有效!

    【讨论】:

    • 似乎当前的 Visual Studio 即使没有 xmlns 属性也可以工作。 (我不确定这个变化是什么时候发生的。我们使用.NET Core,即使在 csproj 文件中也没有 xmlns,也许这就是区别。)
    【解决方案2】:

    您可以创建一个可供所有项目导入的共享 MSBuild 文件。

    post 讨论此解决方案并演示它here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-31
      • 2018-12-25
      • 2015-07-14
      • 2018-01-31
      • 2018-03-26
      • 2021-03-14
      • 1970-01-01
      相关资源
      最近更新 更多