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

为.NET Framework和Core 2.0创建NuGet包的项目配置咨询

单个项目配置多目标框架即可实现(推荐方案)

你完全不需要为不同目标框架创建多个独立项目——用单个项目配置多目标框架是更简洁、易维护的方案,而且你的Visual Studio 15.5.0(对应MSBuild 15.5)已经完全支持这个功能。下面是具体的实现步骤:

1. 修改项目文件配置多目标框架

右键项目 → 选择"编辑.csproj"(如果是老格式的.NET Framework项目,建议先转换成SDK风格项目,VS15.5.0对此支持良好),把原来的<TargetFramework>节点替换成<TargetFrameworks>,用分号分隔你需要支持的框架:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <!-- 替换成你实际需要的.NET Framework版本,比如net452、net46等 -->
    <TargetFrameworks>net46;netcoreapp2.0</TargetFrameworks>
    <!-- 配置NuGet包的基础元数据 -->
    <PackageId>YourUniquePackageId</PackageId>
    <Version>1.0.0</Version>
    <Authors>YourName</Authors>
    <Description>Package supporting both .NET Framework and .NET Core 2.0</Description>
  </PropertyGroup>
</Project>

2. 处理不同框架的差异化代码

如果你的代码需要针对不同框架做特殊实现,可以用条件编译指令区分逻辑:

public void Initialize()
{
#if NETCOREAPP2_0
    // .NET Core 2.0专属初始化逻辑
    Console.WriteLine("Running on .NET Core 2.0");
#elif NET46
    // .NET Framework专属初始化逻辑
    Console.WriteLine("Running on .NET Framework 4.6");
#endif
}

3. 配置框架专属依赖

如果某些NuGet包只在特定框架下需要,可以添加条件引用:

<ItemGroup>
  <!-- 两个框架都需要的公共依赖 -->
  <PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
  
  <!-- 仅.NET Core 2.0需要的依赖 -->
  <PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="2.0.0" Condition="'$(TargetFramework)' == 'netcoreapp2.0'" />
  
  <!-- 仅.NET Framework需要的依赖 -->
  <PackageReference Include="System.Configuration.ConfigurationManager" Version="4.5.0" Condition="'$(TargetFramework)' == 'net46'" />
</ItemGroup>

4. 生成并发布NuGet包

  • 切换到Release模式,右键项目 → "打包",生成的.nupkg文件会存放在bin/Release目录下(编译时MSBuild会自动为每个目标框架生成对应程序集并打包到同一个NuGet包中);
  • 用NuGet命令行发布到私有仓库:
nuget push YourUniquePackageId.1.0.0.nupkg -Source https://your-private-repo-url/v3/index.json -ApiKey your-private-repo-api-key

额外注意事项

  • 确保你选择的.NET Framework版本和目标项目的版本匹配(比如如果用户的项目用net45,就把配置里的net46改成net45);
  • 测试时分别在.NET Framework和.NET Core 2.0项目中安装包,验证功能是否正常;
  • 老的非SDK风格项目也可以配置多目标,但步骤更繁琐,建议优先转成SDK风格。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:44:13