如何使用 msbuild 15 从生成的 nuget 包中的 nuspec 文件中删除依赖项部分



我使用 msbuild v15.8.168.64424 (vs 2017.8( 命令行为控制台应用程序构建 nuget 包。我使用 ILMerge 合并所有依赖项,因此我只得到一个没有依赖项的 exe 文件。

运行命令时

msbuild project1.csproj /t:build /p:configuration=release /p:IsTool=true

我得到了nuget包,但是在检查它时,我发现了dependencies section.

<dependencies>
<group targetFramework=".NETFramework4.5">
<dependency id="lib1" version="1.3.0" exclude="Build,Analyzers" />
<dependency id="lib2" version="2.3.0" exclude="Build,Analyzers" />              
</group>
</dependencies>

我希望"依赖项"部分为空(因为我合并了所有依赖项(。

我可以使用 nuspec 文件生成没有依赖项部分的包,但缺点是手动传递 csproj 中包含的所有元数据。 我在包目标输入中找不到依赖项的属性

问题:

如何从生成的 nuget 包中包含的 nuspec 文件中删除依赖项部分?

可以在 csproj 文件中设置包或项目引用 (<PackageReference>/<ProjectReference>( 上的元数据PrivateAssets="All",以将其排除为 NuGet 依赖项。

请注意,此更改需要还原,因此请在两者之间执行 NuGet 还原或将-restore添加到 MSBuild 调用。

最新更新