我们正在努力迁移到PackageReference恢复样式csproj,但是对于这样的项目有许多nuspec依赖于一些默认的nuget pack CLI行为。具体做法是:
基本上,我希望在csproj上运行dotnet pack并让它使用csproj生成文件,依赖项和版本,但是现有的nuspec文件用于其余的元数据。
如果我在csproj中指定NuSpecFile,它会正确使用nuspec文件,但不再生成基于csproj的文件,依赖项或版本。
答案 0 :(得分:1)
.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>