You need to enable JavaScript to run this app. VS2019下nopCommerce4.40(.NET5)插件构建排除runtimes且保留Nuget包问题
优惠活动
大模型
产品
解决方案
定价
更多

VS2019下nopCommerce4.40(.NET5)插件构建排除runtimes且保留Nuget包问题

针对nopCommerce 4.40.4插件Nuget包输出问题的解决方案

方案1:开启全局拷贝后裁剪冗余文件

该方案适合插件依赖多个Nuget包的场景:

  • 先将CopyLocalLockFileAssemblies设置为true
  • 在<PropertyGroup>节点中添加以下配置,过滤冗余资源:
<!-- 仅保留需要的语言,可自行增减,大幅减少多语言资源体积 -->
<SatelliteResourceLanguages>zh-Hans;en</SatelliteResourceLanguages>
<!-- 禁用不必要的运行时资产拷贝 -->
<EnableRuntimePackAssets>false</EnableRuntimePackAssets>
  • 在现有NopTarget构建后任务中添加删除runtimes文件夹的逻辑(你的短信包不需要跨平台运行时文件):
<Target Name="NopTarget" AfterTargets="Build">
  <!-- 删除插件路径下的不必要库 -->
  <MSBuild Projects="@(ClearPluginAssemblies)" Properties="PluginPath=$(MSBuildProjectDirectory)\$(OutDir)" Targets="NopClear" />
  <!-- 新增:删除冗余runtimes文件夹 -->
  <Delete Files="$(OutDir)\runtimes\**\*" ContinueOnError="true" />
  <RemoveDir Directories="$(OutDir)\runtimes" ContinueOnError="true" />
</Target>

方案2:关闭全局拷贝,单独指定需要输出的Nuget包(更推荐)

该方案适合仅依赖少量Nuget包的场景,从根源避免冗余文件生成:

  • 保持CopyLocalLockFileAssemblies为false不变
  • 修改SmsIrRestful.NetCore的包引用配置,强制单独输出该包的dll:
<PackageReference Include="SmsIrRestful.NetCore" Version="1.1.5">
  <Private>True</Private>
  <ExcludeAssets>runtime</ExcludeAssets>
</PackageReference>

说明:Private=True会强制该Nuget包的主dll输出到构建目录,ExcludeAssets="runtime"会禁止拷贝该包关联的运行时文件,不会生成runtimes文件夹。

注意事项

你当前对Nop.Services设置<Private>false</Private>的配置是符合nop官方规范的,不会影响功能,无需修改。


内容的提问来源于stack exchange,提问作者Sepehr Estaki

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 00:09:00