我有几个项目要从 .NET Framework 4.7 迁移到 .NET Standard 2.0。因此,我尝试使用该dotnet pack命令创建我的 NuGet 包,同时将我的nuspec文件与令牌一起使用。我有几个为我生成版本号的自定义构建脚本。我生成的文件不是版本控制的一部分,但nuspec文件是为什么我想尝试找到一种让令牌工作的方法,否则我会被困在编写新脚本中。
我做的第一件事是GenerateAssemblyInfo在项目文件中将 设置为 false。在我最简单的项目中,csproj文件如下所示:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<TargetFramework>netstandard2.0</TargetFramework>
</PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
然后AssemblyInfo.cs,我将生成一个作为构建过程的一部分。在我编译项目之前,该文件如下所示:
using System.Reflection;
using System.Runtime.InteropServices;
[assembly: AssemblyCompany("Company Name")]
[assembly: AssemblyCopyright("Copyright © 2019")]
#if DEBUG
[assembly: AssemblyConfiguration("Debug")]
#else
[assembly: AssemblyConfiguration("Release")]
#endif
[assembly: AssemblyTitle("The Title")]
[assembly: AssemblyDescription("The Description")]
[assembly: AssemblyProduct("The Product")]
[assembly: ComVisible(false)]
[assembly: Guid("48d6ef54-a8fb-4876-8a9a-2fb8e8cd27e7")]
[assembly: AssemblyVersion("6.0.0.0")]
[assembly: AssemblyFileVersion("6.0.0.0")]
Run Code Online (Sandbox Code Playgroud)
然后我有一个.nuspec用于创建 NuGet 包的文件,如下所示:
<?xml version="1.0"?>
<package >
<metadata> …Run Code Online (Sandbox Code Playgroud)