佛山网站建设佛山网络推广保定网站建设找谁
佛山网站建设佛山网络推广,保定网站建设找谁,设计网站大全免费,常州建网站需要多少钱如何使用 dotnet pack 打包 .NET 跨平台程序集#xff1f; dotnet pack 介绍官方描述 dotnet pack 命令说明使用示例打包 .net 类库项目生成带注释的 nuget 包构建特定平台的 nuget 包关于 .NET RID 目录 dotnet pack 介绍
dotnet pack 是一个 .NET Core NuGet 包打包程序。 … 如何使用 dotnet pack 打包 .NET 跨平台程序集 dotnet pack 介绍官方描述 dotnet pack 命令说明使用示例打包 .net 类库项目生成带注释的 nuget 包构建特定平台的 nuget 包关于 .NET RID 目录 dotnet pack 介绍
dotnet pack 是一个 .NET Core NuGet 包打包程序。
官方描述
dotnet pack - 将代码打包到 NuGet 包。dotnet pack 命令生成项目并创建 NuGet 包。 该命令的结果是一个 NuGet 包也就是一个 .nupkg 文件。
如果要生成包含调试符号的包可以使用以下两个选项
--include-symbols该选项用于创建符号包。--include-source该选项用于创建带有 src 文件夹的符号包该文件夹包含源文件。
将被打包项目的 NuGet 依赖项添加到 .nuspec 文件以便在安装包时可以进行正确解析。 如果打包的项目具有对其他项目的引用则不会将其他项目包含在包中。 目前如果具有项目到项目的依赖项则每个项目均必须包含一个包。
默认情况下dotnet pack 先构建项目。 如果希望避免此行为则传递 --no-build 选项。 此选项在持续集成 (CI) 生成方案中通常非常有用你可以知道代码是之前生成的。
dotnet pack 命令说明
前提条件安装 .NET Core 3.1 SDK 及更高版本此处环境安装的是 .NET 8 SDK在终端执行如下命令
查看 .net 信息
PS F:\gitee dotnet --info
.NET SDK:Version: 8.0.101Commit: 6eceda187bWorkload version: 8.0.100-manifests.291ed43a运行时环境:OS Name: WindowsOS Version: 10.0.22621OS Platform: WindowsRID: win-x64Base Path: C:\Program Files\dotnet\sdk\8.0.101\已安装 .NET 工作负载:Workload version: 8.0.100-manifests.291ed43a
没有要显示的已安装工作负载。Host:Version: 8.0.1Architecture: x64Commit: bf5e279d92.NET SDKs installed:8.0.101 [C:\Program Files\dotnet\sdk].NET runtimes installed:Microsoft.AspNetCore.App 8.0.1 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]Microsoft.NETCore.App 8.0.1 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]Microsoft.WindowsDesktop.App 8.0.1 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]Other architectures found:x86 [C:\Program Files (x86)\dotnet]registered at [HKLM\SOFTWARE\dotnet\Setup\InstalledVersions\x86\InstallLocation]Environment variables:Not setglobal.json file:Not foundLearn more:https://aka.ms/dotnet/infoDownload .NET:https://aka.ms/dotnet/download查看 dotnet pack 命令帮助信息
PS F:\gitee dotnet pack -h
Description:.NET Core NuGet 包打包程序用法:dotnet pack [PROJECT | SOLUTION...] [options]参数:PROJECT | SOLUTION 要操作的项目或解决方案文件。如果没有指定文件则命令将在当前目录里搜索一个文件。选项:-o, --output OUTPUT_DIR 要放置生成包的输出目录。--artifacts-path ARTIFACTS_DIR 工件路径。项目中的所有输出(包括生成、发布和打包输出)都将放到指定路径下的子文件夹 中。--no-build 打包之前不要生成项目。Implies --no-restore.--include-symbols 除了输出目录中的常规包之外还包括带符号的包。--include-source 包括 PDB 和源文件。源文件放入 nuget 结果包的“src”文件夹中。-s, --serviceable 在包中设置可用标志。有关详细信息请参阅 https://aka.ms/nupkgservicing。--nologo 不显示启动版权标志或版权消息。--interactive 允许命令停止和等待用户输入或操作(例如用以完成身份验证)。--no-restore 生成前请勿还原项目。-v, --verbosity LEVEL 设置 MSBuild 详细程度。允许值为 q[uiet]、m[inimal]、n[ormal]、d[etailed] 和 diag[nostic]。--version-suffix VERSION_SUFFIX 设置生成项目时使用的 $(VersionSuffix) 属性的值。-c, --configuration CONFIGURATION 用于生成包的配置。默认值为 Release。--disable-build-servers 强制命令忽略任何永久性生成服务器。--ucr, --use-current-runtime 将当前运行时用作目标运行时。-?, -h, --help 显示命令行帮助。关于【dotnet pack】更多信息请查看https://learn.microsoft.com/zh-cn/dotnet/core/tools/dotnet-pack 使用示例
打包 .net 类库项目
创建一个 .net 类库(classlib) 文件执行命令
dotnet new classlib -n ClassLibrary1在创建的类库项目中添加如下代码
namespace ClassLibrary1;public class Class1
{public void SayHi() {Console.WriteLine(helle, dotnet!);}
}执行 dotnet pack 命令
dotnet pack \
C:\Users\Jeffrey.Chai\Desktop\test\ClassLibrary1\ClassLibrary1.csproj \
--no-build -o C:\Users\Jeffrey.Chai\Desktop\test\nupkgs \
-c Release \
-p:TargetFrameworksnet8.0 \
-p:PackageVersion0.0.1参数说明
--no-build 打包时跳过生成步骤信息-o|--output 将生成的 nuget 包放置到指定的文件夹中-c|--configuration 定义生成配置。大多数项目的默认配置为 Debug但你可以覆盖项目中的生成配置设置-p:TargetFrameworks 指定生成的 nuget 包依赖 目标框架-p:PackageVersion 指定生成的 nuget 包版本信息
执行成功后输出如下信息 生成带注释的 nuget 包
通过上面默认的方式构建的 nuget 包是没有注释说明的在使用的时候看不到包介绍说明不是很方便。
其实想让生成的 nuget 包带注释非常简单只需要在项目文件加上一个 GenerateDocumentationFile 元数据配置即可。
类库 .csproj 文件完整信息如下
Project SdkMicrosoft.NET.SdkPropertyGroupTargetFrameworknet8.0/TargetFrameworkImplicitUsingsenable/ImplicitUsingsNullableenable/NullableGenerateDocumentationFiletrue/GenerateDocumentationFileVersion0.0.1/Version/PropertyGroup/Project添加上面信息后再次执行 dotnet pack 命令即可。
构建特定平台的 nuget 包
有些时候项目环境因素我们可能需要构建特定平台的 nuget 包我们可以添加 --runtime 参数即可。
打包项目并使用特定运行时 (Windows 10) 进行还原操作
dotnet pack --runtime win10-x64参数说明
--runtime 可以指定特定的 .NET RID 目录
关于 .NET RID 目录
RID 是 运行时标识符 的缩写。RID 值用于标识应用程序运行所在的目标平台。.NET 包使用它们来表示 NuGet 包中特定于平台的资产。 以下值是 RID 的示例linux-x64、win-x64 或 osx-x64。 对于具有本机依赖项的包RID 将指定在其中可以还原包的平台。
可以在项目文件的 RuntimeIdentifier 元素中设置一个 RID。 可以将多个 RID 定义为项目文件的 RuntimeIdentifiers 元素中的列表以分号分隔。 也可使用以下 .NET CLI 命令 通过 --runtime 选项使用它们
dotnet builddotnet cleandotnet packdotnet publishdotnet restoredotnet rundotnet store
表示具体操作系统的 RID 通常遵循以下模式[os].[version]-[architecture]-[additional qualifiers]其中 [os] 是操作系统/平台系统名字对象。 例如 ubuntu。 [version] 是操作系统版本使用的格式是以点 (.) 分隔的版本号。 例如 15.10。 版本不应为营销版本因为营销版本通常代表该操作系统的多个离散版本且具有不同的平台 API 外围应用。 [architecture] 是处理器体系结构。 例如x86、x64、arm 或 arm64。 [additional qualifiers] 进一步区分了不同的平台。 例如aot。
以下示例演示了 runtime.json 文件中定义的另一个略大的 RID 图表
linux-arm64 linux-arm32| \ / || linux || | |unix-arm64 | unix-x64\ | /unix|any关于更多 .NET RID 目录请查看https://learn.microsoft.com/zh-cn/dotnet/core/rid-catalog
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/89378.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!