带有 NuSpecFile 的 MSBuild 15 csproj
MSBuild 15 csproj with NuSpecFile
我们正在努力迁移到 PackageReference 恢复样式的 csproj,但是对于此类项目,有许多 nuspec 依赖于一些默认的 nuget pack CLI 行为。具体来说:
- 版本替换
- 自动生成依赖项部分
- 自动生成文件部分
本质上,我正在寻找 运行 csproj 上的 dotnet pack 并让它使用 csproj 生成文件、依赖项和版本,但现有的 nuspec 文件用于其余元数据。
如果我在 csproj 中指定 NuSpecFile,它会正确使用 nuspec 文件,但不再生成基于 csproj 的文件、依赖项或版本。
.NET SDK 的基于 MSBuild 的打包功能可以选择生成用于打包的 nuspec 文件(默认)或使用用户提供的 nuspec 文件(NuSpecFile
属性 ) 用于生成包。
没有混合这些方法的功能。
我建议将您需要的所有元数据放入 csproj 文件中。有关可用于控制包元数据的 MSBuild 属性列表,请参阅 documentation on the pack target。
如果您希望跨多个项目共享元数据,请在您的解决方案的根文件夹(所有项目的目录层次结构或之上)创建一个 Directory.Build.props
文件,其中包含您要共享的内容:
<Project>
<PropertyGroup>
<Authors>shared authors value</Authors>
<PackageProjectUrl>https://something</PackageProjectUrl>
…
</PropertyGroup>
</Project>
我们正在努力迁移到 PackageReference 恢复样式的 csproj,但是对于此类项目,有许多 nuspec 依赖于一些默认的 nuget pack CLI 行为。具体来说:
- 版本替换
- 自动生成依赖项部分
- 自动生成文件部分
本质上,我正在寻找 运行 csproj 上的 dotnet pack 并让它使用 csproj 生成文件、依赖项和版本,但现有的 nuspec 文件用于其余元数据。
如果我在 csproj 中指定 NuSpecFile,它会正确使用 nuspec 文件,但不再生成基于 csproj 的文件、依赖项或版本。
.NET SDK 的基于 MSBuild 的打包功能可以选择生成用于打包的 nuspec 文件(默认)或使用用户提供的 nuspec 文件(NuSpecFile
属性 ) 用于生成包。
没有混合这些方法的功能。
我建议将您需要的所有元数据放入 csproj 文件中。有关可用于控制包元数据的 MSBuild 属性列表,请参阅 documentation on the pack target。
如果您希望跨多个项目共享元数据,请在您的解决方案的根文件夹(所有项目的目录层次结构或之上)创建一个 Directory.Build.props
文件,其中包含您要共享的内容:
<Project>
<PropertyGroup>
<Authors>shared authors value</Authors>
<PackageProjectUrl>https://something</PackageProjectUrl>
…
</PropertyGroup>
</Project>