1

我使用 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>

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

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

问题:

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

4

1 回答 1

2

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

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

于 2018-10-18T15:48:54.103 回答