知道了 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 条评论) |