代码之家  ›  专栏  ›  技术社区  ›  Will Strohl

在.csproj中包含.targets文件以全局定义项目和MSBuild变量

  •  0
  • Will Strohl  · 技术社区  · 7 年前

    PropertyGroup ,但如果某些内容发生了更改(如版本号),我们不希望必须用该更改更新每个项目文件。

    我应该如何以一种安全且跨项目类型可用的方式来做这件事(不,在这种情况下,Nuget不是一个选项。)

    全局目标文件示例:

    <Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
      <PropertyGroup>
        <Product1Version>02.01.01</Product1Version>
        <Product2Version>03.02.01</Product2Version>
        <ReferencesPath>..\..\References</ReferencesPath>
        <Product1ReferencePath>$(ReferencesPath)\Product1\$(Product1Version)</Product1ReferencePath>
        <Product2ReferencePath>$(ReferencesPath)\Product2\$(Product2Version)</Product2ReferencePath>
      </PropertyGroup>
    </Project>
    

    下面是我打算如何在csproj文件中使用它的示例:

      <Import Project="..\..\Build\SolutionReferences.targets" Condition="false" />
      <ItemGroup>
        <Reference Include="Product1">
          <SpecificVersion>False</SpecificVersion>
          <HintPath>$(Product1ReferencePath)\Product1.dll</HintPath>
          <Private>False</Private>
        </Reference>
        <Reference Include="Product2">
          <SpecificVersion>False</SpecificVersion>
          <HintPath>$(Product2ReferencePath)\Product2.dll</HintPath>
          <Private>False</Private>
        </Reference>
      </ItemGroup>
    
    1 回复  |  直到 7 年前
        1
  •  2
  •   Will Strohl    7 年前

    呃。。。我所要做的就是搬走 Condition="false" Import 命令:(