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

C#类库执行Publish任务生成.nuget包而非程序集及依赖项如何解决?

解决方法

步骤1:修改.csproj配置,禁止发布时自动生成NuGet包

在你的<PropertyGroup>节点中新增GeneratePackageOnPublish配置,设为false即可禁用发布阶段自动打包NuGet的默认行为:

<PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
    <CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
    <Platforms>AnyCPU</Platforms>
    <!-- 新增以下配置 -->
    <GeneratePackageOnPublish>false</GeneratePackageOnPublish>
</PropertyGroup>

你已配置的CopyLocalLockFileAssemblies=true会自动将所有NuGet依赖项复制到发布输出目录,符合收集依赖的需求。而MyService.PluginBase项目引用的Private=false和ExcludeAssets=runtime配置会跳过该基类程序集的复制,符合动态插件场景下基类由宿主提供的常见设计,无需修改。

步骤2:调整Visual Studio发布配置

创建/修改发布配置时,发布目标选择「文件夹」,不要选择「NuGet」,确认发布参数保持如下即可:

  • 配置:Release | Any CPU
  • 目标框架:net5.0
  • 目标运行时:Portable
  • 部署模式:Framework-dependent

步骤3:验证发布结果

配置完成后重新执行发布任务,输出目录会直接生成你的项目程序集、所有第三方NuGet依赖项,不会再生成.nupkg包。如果需要自定义输出路径,可以在发布配置的「目标位置」中指定,或者使用命令行发布:
dotnet publish -c Release -o ./publish-output

内容的提问来源于stack exchange,提问作者Chris Walsh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 23:06:01