记录同一个工程多目标编译,并且发布到 nuget


1.新建 DotNet Standard2.0 类库工程

2.修改.csproj 工程文件

  • 右键项目,编辑工程文件
1
2
3
4
5
6
7
8
9
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">

  <PropertyGroup>
    <TargetFrameworks>net47;netcoreapp3.0</TargetFrameworks>
    <UseWPF>true</UseWPF>
    <UseWindowsForms>true</UseWindowsForms>
  </PropertyGroup>

</Project>

如果入口工程提示编译报错,也按上面的改

3.VS 右键发布 nuget 包

可以直接通过 vs 右键发布 nuget 包,但是只能支持一种目标。要么是 framewok,要么是 core。

4.使用命令行发布多目标 nuget 包

  • 打开 nuget 命令控制台
  • 输入命令
1
dotnet pack -o ../LocalNuget/Packages

更多参数见官网: https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-pack

5.完事

这是我今天自己总结出来的,感觉很有用记录一下。