
知道了 csproj 文件中的一些常用 NuGet 属性,创建 NuGet 包时就可以充分发挥新 Sdk 自动生成 NuGet 包的优势,不需要 nuspec 文件啦。(毕竟 nuspec 文件没有 .csproj 和 .targets 文件强大而又有扩展性。)
“项目文件中的已知属性系列”分为两个部分:
NuGet 相关的属性也分为全局属性和项属性两类。不过,我更愿意分成三类来说明:
当然,这部分的属性也是在 csproj 中使用的,是为了生成 nuspec 文件。
使用方法像这样:
<Project Sdk="Microsoft.NET.Sdk"><PropertyGroup><PackageId>Walterlv.Demo</PackageId><PackageVersion>3.2.0-beta</PackageVersion><TargetFramework>net46</TargetFramework></PropertyGroup>
</Project>
不过我们通常没有这么直接去设置,因为大多数属性都是有默认值的,如果不设置,将自动使用默认值。甚至什么都不写也能生成正确的 nuspec 文件。
$(PackageId): NuGet 包的唯一 Id,对应 NuGet 的 Id 属性。这个 Id 需要在整个服务器(例如 nuget)上唯一,如果没设置,则使用 $(AssemblyName);例如 Newtonsoft.Json。$(PackageVersion): NuGet 包的包版本,可以使用语义版本号(参见语义版本号(Semantic Versioning) - 吕毅),如果没设置,则使用 $(Version);例如 3.2.0-beta。$(PackageVersionPrefix): 包版本前缀,默认为空。$(PackageVersionSuffix): 包版本后缀,默认为空。$(Authors): 包的作者;建议指定成在 nuget 上的用户名,这样访客可以点击包作者查看到包作者的信息;多个名字用分号分隔。$(Title): 包的显示名称,如果没设置,则使用 $(PackageId)。$(PackageDescription): 包的描述文字,如果填写了,则用户在浏览包的时候可以看到。$(Copyright): 包的版权声明$(PackageRequireLicenseAcceptance): 是个布尔值,如果为 true,则在安装包之前要求同意协议。$(PackageLicenseUrl): 此 NuGet 包协议所在的 url。$(PackageProjectUrl): 此 NuGet 包的项目 url。$(PackageIconUrl): 此 NuGet 包的图标 url,无论是 nuget 还是 Visual Studio 都将从这个 url 下载包的图标。$(PackageTags): 标签,用分号分隔;指定多个标签有助于用户在 nuget 上搜索到你的 NuGet 包。$(PackageReleaseNotes): 这个版本的 Release 记录。$(RepositoryUrl): 仓库 url,例如 .git$(RepositoryType): 仓库类型,例如 git、tfs。$(RepositoryBranch): **NuGet 4.7 才开始的新属性!**此包对应的仓库分支,例如 master。$(RepositoryCommit): **NuGet 4.7 才开始的新属性!**此包对应的提交号,例如 2d3ef96ee704d7896eeb2d88fbc987b2004ff786。$(PackageType): 我还没有理解到此属性的作用。以上有些信息在每次 NuGet 发布之前都是要改的,例如:$(PackageVersion)、$(PackageReleaseNotes)、$(RepositoryCommit)。所以很明显——这不是用来给开发者设置的属性,是用于辅助我们生成打包工具的。
这些属性会影响生成 NuGet 包的过程。
<Project Sdk="Microsoft.NET.Sdk"><PropertyGroup><!-- 此程序集不可打包,通常在单元测试项目中设置此属性。 --><IsPackable>false</IsPackable><Description></Description><!-- 这是一个仅开发阶段使用的 NuGet 包,详情请参见 .html。 --><DevelopmentDependency>true</DevelopmentDependency><!-- 单独指定 NuGet 包应该输出到哪个目录ÿ
本文发布于:2024-02-02 02:55:05,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170681569640938.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
| 留言与评论(共有 0 条评论) |