MSBuild 15 csproj和NuSpecFile

MSBuild 15 csproj和NuSpecFile,msbuild,nuget,nuget-package,csproj,msbuild-15,Msbuild,Nuget,Nuget Package,Csproj,Msbuild 15,我们正在努力迁移到PackageReference restore样式的csproj,但是对于这样的项目,有许多nuspec依赖于一些默认的nuget pack CLI行为。具体而言: 版本替换 自动生成依赖项部分 自动生成文件部分 从本质上说,我希望在csproj上运行dotnet pack,并让它使用csproj生成文件、依赖项和版本,但要为其余元数据生成一个现有的nuspec文件 如果我在csproj中指定nuspec文件,它将正确使用nuspec文件,但不再基于csproj生成文件、

我们正在努力迁移到PackageReference restore样式的csproj,但是对于这样的项目,有许多nuspec依赖于一些默认的nuget pack CLI行为。具体而言:

  • 版本替换
  • 自动生成依赖项部分
  • 自动生成文件部分
从本质上说,我希望在csproj上运行dotnet pack,并让它使用csproj生成文件、依赖项和版本,但要为其余元数据生成一个现有的nuspec文件


如果我在csproj中指定nuspec文件,它将正确使用nuspec文件,但不再基于csproj生成文件、依赖项或版本。

基于MSBuild的.NET SDK打包功能可以选择生成用于打包的nuspec文件(默认)或使用用户提供的nuspec文件(
NuSpecFile
property)用于生成包

没有混合这些方法的功能

我建议将您需要的所有元数据放入csproj文件中。有关可用于控制包元数据的MSBuild属性的列表,请参阅

如果希望跨多个项目共享元数据,请在解决方案的根文件夹(所有项目或以上的目录层次结构)中创建一个
目录.Build.props
文件,其中包含要共享的内容:

<Project>
  <PropertyGroup>
    <Authors>shared authors value</Authors>
    <PackageProjectUrl>https://something</PackageProjectUrl>
    …
  </PropertyGroup>
</Project>

共享作者价值
https://something
…

基于MSBuild的.NET SDK打包功能可以选择生成用于打包的nuspec文件(默认)或使用用户提供的nuspec文件(
nuspec文件
属性)生成包

没有混合这些方法的功能

我建议将您需要的所有元数据放入csproj文件中。有关可用于控制包元数据的MSBuild属性的列表,请参阅

如果希望跨多个项目共享元数据,请在解决方案的根文件夹(所有项目或以上的目录层次结构)中创建一个
目录.Build.props
文件,其中包含要共享的内容:

<Project>
  <PropertyGroup>
    <Authors>shared authors value</Authors>
    <PackageProjectUrl>https://something</PackageProjectUrl>
    …
  </PropertyGroup>
</Project>

共享作者价值
https://something
…

噢,好吧……我只是在寻找一种更简单的方法来迁移到新的生成系统。我希望msbuild不会如此混乱。噢,好吧……我只是在寻找一种更简单的方法来迁移到新的生成系统。我希望msbuild不会如此混乱。