NuGet构建打包时RepositoryUrl属性未写入nuspec问题求助
问题原因
你项目中引用的NuGet.Build.Packaging v0.2.2属于已弃用的旧版第三方打包组件,该组件不支持识别RepositoryUrl、RepositoryType这两个后续新增的NuGet元数据属性,因此配置的这两个值无法被写入生成的nuspec文件。
解决步骤
- 第一步:移除项目中对
NuGet.Build.Packaging的包引用,.NET SDK(Microsoft.NET.Sdk)本身已经内置完整的dotnet pack打包能力,无需额外引入该组件。需要删除的代码段如下:
<PackageReference Include="NuGet.Build.Packaging" Version="0.2.2"> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <PrivateAssets>all</PrivateAssets> </PackageReference>
- 第二步:建议将
RepositoryUrl的值从http协议修改为https协议,避免后续源校验出现异常。 - 第三步:清理项目缓存后重新执行打包操作,命令参考:
dotnet clean dotnet pack -c Release
- 验证生成的nuspec文件,即可看到正常写入的repository节点:
<repository type="git" url="https://github.com/think-active-labs/activeband-comms" />
补充说明
如果你保留了PackOnBuild=true的配置,移除旧打包组件后执行dotnet build也会自动触发打包,生成的NuGet包会正常包含仓库元数据,完全满足GitHub Packages的发布要求。
内容的提问来源于stack exchange,提问作者Gerard Wilkinson
相关产品推荐
相关产品推荐

