繁体   English   中英

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

[英]Including a .targets file in .csproj to globally define project & MSBuild variables

我需要在一个地方为一个大约有13个项目的解决方案定义变量,每个项目都具有来自相同位置的外部依赖项的不同组合。 现在,将它们作为变量包含在PropertyGroup很容易,但是如果某些更改(例如版本号)发生变化,我们就不必使用该更改来更新每个项目文件。

我尝试创建一个目标文件,该文件具有在项目之间使用的变量,并将其包含在程序集引用之前的csproj文件中。 这似乎在网站项目中表现出色,但在类库项目中却没有。 找不到参考。

我应该如何以一种在所有项目类型中安全且可用的方式来执行此操作? (不,在这种情况下,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>

......我要做的就是从Import命令中删除Condition="false" :(

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM