Microsoft.Build.CentralPackageVersions 和文件夹结构

Microsoft.Build.CentralPackageVersions and folder structure

大家好我想构建我的项目

 | Build
        Packages.props 
 | Output
 | Source
        Project1-Folder
                  Project1.csproj
        Project2-Folder
                  Project2.csproj
 Sln 
 Directory.Build.props

with Packages.props 在此结构中,无法识别项目 1 或 2,但如果我将其移动到根目录,它可以正常工作。知道如何让它在这种结构下工作吗

我尝试使用 Directory props ,但它给出了循环错误 我的 Directory.Build.props 看起来像

<Project>   
  <PropertyGroup>
    <EnableCentralPackageVersions>true</EnableCentralPackageVersions>
    <CentralPackagesFile>$(MSBuildProjectDirectory)\Build\Packages.props</CentralPackagesFile> 
  </PropertyGroup>
</Project>

和packages.prop

<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
  <PackageReference Update="Newtonsoft.Json" Version="13.0.1" />
</ItemGroup>
</Project>

您可以通过CentralPackagesFile属性指定Packages.props文件的路径。因此,您可以将以下内容添加到您的 .csproj 文件中:

<PropertyGroup>
  <CentralPackagesFile>$(MSBuildProjectDirectory)\..\..\Build\Packages.props</CentralPackagesFile>
</PropertyGroup>

除了将它分别添加到每个项目之外,您还可以为您的项目创建一个 Directory.Build.props 文件,其中包含以下内容:

<Project>
  <PropertyGroup>
    <CentralPackagesFile>$(MSBuildThisFileDirectory)\Build\Packages.props</CentralPackagesFile>
  </PropertyGroup>
</Project>

请注意,您必须将此 Directory.Build.props 文件放在根目录或您的 Source/ 目录中才能将其拾取。