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

如何用dotnet pack仅打包资源文件创建NuGet语言包?

解决方案:用dotnet pack构建独立多语言资源NuGet包

方案1:配置独立资源项目,避免生成多余DLL

创建对应语言的资源项目(如lib.de.csproj),通过修改项目配置,让它仅打包资源文件,不生成冗余的语言专属DLL:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework> <!-- 与主库目标框架保持一致 -->
    <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
    <OutputType>None</OutputType> <!-- 核心配置:不生成库或可执行文件 -->
    <PackageId>YourMainLib.de</PackageId> <!-- 多语言包ID格式:主库ID+语言后缀 -->
    <PackageVersion>1.0.0</PackageVersion>
    <Title>YourMainLib 德语资源包</Title>
    <Description>YourMainLib的德语语言资源</Description>
  </PropertyGroup>

  <ItemGroup>
    <EmbeddedResource Include="**\*.resx" />
    <!-- 指定资源逻辑名称,确保主库能正确加载 -->
    <EmbeddedResource Update="Resources\YourMainLib.de.resx">
      <LogicalName>YourMainLib.Properties.Resources.de.resources</LogicalName>
      <ManifestResourceName>YourMainLib.Properties.Resources.de</ManifestResourceName>
    </EmbeddedResource>
  </ItemGroup>

  <!-- 跳过编译步骤,直接打包资源 -->
  <PropertyGroup>
    <NoBuild>true</NoBuild>
  </PropertyGroup>
</Project>

执行打包命令:

dotnet pack lib.de.csproj --configuration Release

此方案生成的包仅包含资源文件,无冗余DLL,且资源命名符合主库加载逻辑。

方案2:主项目多配置打包,排除主DLL

若不想新建独立项目,可在主库csproj中添加多语言构建配置,打包时仅输出对应语言的资源:

<!-- 在主库csproj中添加德语配置 -->
<PropertyGroup Condition="'$(Configuration)' == 'Release-de'">
  <NeutralLanguage>de</NeutralLanguage>
  <PackageId>YourMainLib.de</PackageId>
  <PackageVersion>1.0.0</PackageVersion>
  <GeneratePackageOnBuild>false</GeneratePackageOnBuild>
</PropertyGroup>

<ItemGroup Condition="'$(Configuration)' == 'Release-de'">
  <!-- 仅包含德语资源文件 -->
  <EmbeddedResource Include="Resources\YourMainLib.de.resx" />
  <!-- 排除所有代码文件,避免生成主库DLL -->
  <Compile Remove="**\*.cs" />
</ItemGroup>

执行打包命令:

dotnet pack YourMainLib.csproj --configuration Release-de

此方案无需额外项目,通过配置隔离不同语言的打包内容,但需维护多套构建配置。

方案3:复用现有nuspec文件,用dotnet pack打包

dotnet pack支持直接调用nuspec文件,可完全复用你之前的nuspec配置,无需修改项目文件,完美替代nuget.exe:

执行打包命令:

dotnet pack --nuspec-file YourMainLib.de.nuspec --configuration Release

此方案迁移成本最低,直接沿用原有多语言打包逻辑,且跨平台无需依赖mono。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 15:05:10