You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure DevOps Artifacts私有NuGet包自定义描述不生效,始终显示为“default”

Azure DevOps Artifacts私有NuGet包自定义描述不生效,始终显示为“default”

我完全懂你现在的困扰——在Azure DevOps里把NuGet包发布到私有Artifacts feed时,包的描述一直卡在默认的"default",试了AssemblyInfo.cs和.nuspec都没搞定,确实挺闹心的。结合你贴出来的Pipeline配置,我给你梳理几个靠谱的解决方向:

1. 直接在SDK风格项目的.csproj里配置描述(最推荐)

如果你的项目是SDK风格(现在.NET项目基本都是这个类型),手动写的AssemblyInfo.cs大概率会被项目自动生成的内容覆盖,所以直接在.csproj里设置元数据才是最稳妥的:

打开你的xxxx.csproj文件,添加或修改<PropertyGroup>里的描述相关字段:

<PropertyGroup>
  <!-- 核心:自定义包描述 -->
  <Description>这是我的私有NuGet包,用于XX业务场景</Description>
  <!-- 可选补充其他元数据 -->
  <Authors>我的团队</Authors>
  <PackageLicenseExpression>MIT</PackageLicenseExpression>
  <PackageProjectUrl>https://dev.azure.com/我的组织/我的项目</PackageProjectUrl>
</PropertyGroup>

保存后重新运行Pipeline,dotnet pack会自动读取这些属性生成NuGet包的元数据,Artifacts里就能看到自定义描述了。

2. 如果要用.nuspec文件,必须在pack任务里指定路径

要是你坚持想用.nuspec来管理元数据,得确保Pipeline的dotnet pack任务明确指定这个文件的路径,不然dotnet会默认用csproj的配置。修改你的pack任务:

- task: DotNetCoreCLI@2
  condition: eq(variables['Build.SourceBranchName'], 'main')
  displayName: 'dotnet pack'
  inputs:
    command: pack
    packagesToPack: '/home/vsts/work/1/s/src/xxx/xxxx.csproj'
    arguments: '--configuration $(BuildConfiguration)'
    versioningScheme: byEnvVar
    versionEnvVar: PackageVersion
    # 新增:指定nuspec文件路径
    nuspecPath: '/home/vsts/work/1/s/src/xxx/xxxx.nuspec'

同时,确保你的.nuspec文件里正确配置了<description>节点:

<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
  <metadata>
    <id>你的包ID</id>
    <version>$PackageVersion$</version> <!-- 可以引用环境变量的版本号 -->
    <authors>我的名字</authors>
    <description>这里填写你的自定义包描述内容</description>
  </metadata>
</package>

注意:如果同时配置了csproj和nuspec,dotnet pack会优先使用nuspec里的设置。

3. 排查AssemblyInfo.cs不生效的原因(适合非SDK风格项目)

如果你的项目是非SDK风格,手动写的AssemblyInfo.cs才会生效,但要确保里面的描述字段是正确的:

[assembly: AssemblyDescription("自定义包描述")]
[assembly: AssemblyTitle("包的标题")]

要是还是不生效,可能是项目设置里自动生成了AssemblyInfo,你可以在csproj里禁用自动生成:

<PropertyGroup>
  <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
</PropertyGroup>

最后提醒一句:修改完配置后,记得重新触发Pipeline,发布后在Artifacts页面刷新一下,有时候缓存会导致显示旧的默认描述。

备注:内容来源于stack exchange,提问作者toto'

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 06:15:30