项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) 发布于 2018-05-10 13:49...Sdk 自动生成 NuGet 包的优势,不需要 nuspec 文件啦。...不过,我更愿意分成三类来说明: nuspec 属性 当然,这部分的属性也是在 csproj 中使用的,是为了生成 nuspec 文件。...$(Authors): 包的作者;建议指定成在 nuget.org 上的用户名,这样访客可以点击包作者查看到包作者的信息;多个名字用分号分隔。...可能没有开放的内部属性 在 Microsoft.NET.Sdk 中,NuGet 包的打包主要靠的是 NuGet.Build.Tasks.Pack.targets 文件中一个名为 PackTask 的任务来完成的
但如果需要自定义一些编译步骤,那么就需要在制作 NuGet 包时做很多的特殊处理了。 本文介绍制作适用于多框架项目的 NuGet 工具包时应该注意的问题。...> 但是,有的小伙伴希望探索一些更高级的用法,所以可能会遇到在多框架项目中,NuGet 包自定义的功能不执行的问题。...接下来,我们了解一下在单框架和多框架下 NuGet 包执行上的不同。...仅含 build 文件夹的 NuGet 包装到单框架项目中 在这种情况下,build 文件夹中的 .props 和 .targets 文件在目标项目编译时正常执行。 2....在编译 netcoreapp3.1 框架的时候会执行一次 Walterlv.NullableAttributes.Source 包中 build 文件夹中的编译任务;在编译 net48 框架的时候又会执行一次
本文告诉大家如何在打出的 NuGet 包含代码的注释,这样安装了 NuGet 的小伙伴就可以在 VS 上看到对应的方法和类的注释 在使用 SDK Style 格式,可以使用下面一句话在输出的时候添加 xml...注释文件,在打包 NuGet 添加 xml 注释 true 上面代码在 csproj 中添加 另一个方法是指定 DocumentationFile 的路径 当然,上面这个方法需要指定路径 在...NuGet 包里面,按照规则,在对应的 xx.dll 或 xx.exe 存在对应的 xx.xml 文件,那么这个 xx.xml 文件将会被作为库的注释文件被 VS 使用
打一个 dotnet tool 包,可以将这个包上传到 NuGet 上,小伙伴通过和安装 NuGet 相同方式就可以将工具安装在本机上。...而 dotnet tool 包本身就是 NuGet 包,如果是在 dotnet 生成或 VisualStudio 中,只需要在 csporj 文件添加下面代码 true...就可以 这个 NuGet 包和其他的 NuGet 有什么不同 如果我需要手动打包,我先需要可执行文件,例如 Windows 下的 exe 文件,注意没有限制平台,也就是 Linux 也可以。...创建准备打包文件夹,如 packing 文件夹,在 packing 文件夹里面创建 tools 文件夹,在 tools 文件夹创建对应框架文件夹,如 netcoreapp3.1 再创建 any 文件夹...Name 就是 nugetfix 中的命令,而 EntryPoint 就是入口文件,请将代码修改为你需要的代码 返回 packing 文件夹,创建 nuspec 文件,我期望阅读本文的小伙伴都知道 nuspec
微软在2014年5月12日的TechEd大会上宣布将会发布下一代ASP.NET框架ASP.NET vNext的预览。...CLR以及针对云环境优化的代码库都成为了可自由选择和搭配的NuGet包。...开发以可以把应用依赖定制的CLR以及云优化的.NET框架构建为一个NuGet包。...ASP.NET vNext将packages.config、NuGet 配置(nuspec)以及项目文件(csprojs)合并到统一的项目依赖配置文件project.json中。...在输入类库或者NuGet包时,开发者可以看到完整的智能提示,并且NuGet包会被自动下载到开发环境中。
通常,此类代码捆绑到“包”中,其中包含编译的代码(如 DLL)以及在使用这些包的项目中所需的其他内容。...NuGet.org 是 NuGet 包的公用主机,NuGet 技术还支持在云中(如在 Azure DevOps 上)、在私有网络中或者甚至直接在本地文件系统以私密方式托管包。...Version,窗体 Major.Minor.Patch[-Suffix] 中特定的版本号,其中 -Suffix 标识预发布版本。 如果未指定,默认值为 1.0.0。...在包的 NuGet.org 页面上所示的包说明可以在 .csproj 文件中的 设置,或者通过 .nuspec 文件中的 $description 拉取。....nuspec 文件是包含包元数据的 XML 清单,.nuspec 当你创建包时将生成。
从零开始打包 Nuget 只需要不到 3 分钟,其中有 2.9 分钟都是在等待 VisualStduio 卡 先来回顾一下之前是如何制作一个 Nuget 包的,首先通过 Nuget 创建一个空白的 nuspec...文件 nuget.exe spec 然后打开这个 nuspec 文件,添加自己需要的内容,需要包括 Nuget 的 id 和 作者、描述这些,请看代码 的包还可以做一些修改,例如修改这个包的 id 在 新的项目格式会使用 AssemblyName 作为默认的包的 id 来尝试修改这个值看打出来的包是什么 我修改为 lindexi 请看代码...如果想要自己定义一个 nuget 包的 id 和 AssemblyName 不相同,可以通过修改 PackageId 的方式,具体请看项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet...点击刚才创建的包 ? 这时就可以看到刚才快速创建的包 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) - walterlv 课件 ?
owners 拥有者:你可以随便写,但是在发布的时候会被你的nuget帐户名替代。 最低客户端版本:描述这个包限制的最低nuget客户端版本。...iconUrl 一个32*32像素的.png文件地址,作为最终在nuget中显示的图标 描述、标签、许可地址、项目地址 Dependencies 我们发的依赖其他程序,那就写他,具体怎么我还不知...问题: 删除示例 nuspec 值。 说明: Tags 的值“Tag1 Tag2”是示例值,应将其删除。 解决方案: 请替换为适当的值或删除它,然后重新生成程序包。...解决方案: 请替换为适当的值或删除它,然后重新生成程序包。 把我们信息写后打包 nuget pack smms.csproj ?...刚才复制的 ? ? 发布 我们可以在https://www.nuget.org/account/Packages 我们上传包,如果还要上传,我们的version要比之前大 我们在 ?
在找 NuGet 的时候可以看到有趣的库都有有趣的图标,那么如何设置一个 NuGet 的图标?...,双击 Path 添加 c:\lindexi 就可以了 如果之前已经设置了环境变量,请尝试更新一下 NuGet 请使用下面命令 nuget update -self 在 NuGet 包显示图标的原理是在...通过 VisualStudio 的 Nuget 包管理设置本地的包为 Lindexi.1.0.0.nupkg 文件的文件夹,就可以找到这个文件 ?...通过 URL 设置图标 打开 Lindexi.nuspec 文件,在之前的 NuGet 支持的是通过 URL 的方法设置图标 可以从easyicon找到一个好看的图标 然后通过图床将图标上传到网上,在...通过文件 有小伙伴说他在清真的地方,无法下载到好看的图标,同时图标使用的是外面的链接,可能下载到的不是图片,所以微软建议将图标文件放在 NuGet 包里面 编辑 Lindexi.nuspec 文件,将
本文告诉大家通过命令行获取 Nuget 的版本号 在 Nuget 中没有 -version 和 -v 和 --version 等写法,只需要直接输入 nuget 在第一行就会显示版本号 nuget NuGet...list 显示给定源中的程序包列表。如果未指定源,则使用 %AppData%\NuGet\NuGet.config 中定义的所有源。...pack 基于指定的 nuspec 或项目文件创建 NuGet 程序包。 push 将程序包推送到服务器并进行发布。...sources 可以管理位于 %AppData%\NuGet\NuGet.config 的源列表 spec 为新程序包生成 nuspec。...如果此命令在项目文件(.csproj、.vbproj、.fsproj)所在的文件夹中运行,则它将创建已标记 化的 nuspec 文件。 update 将程序包更新到最新的可用版本。
,在这个项目用来告诉大家如何使用替换占位符的方法 在开始做之前需要告诉大家为什么需要使用这个方法 因为写的 nuspec 文件是可以保持不动,在多个项目使用相同的一个 nuspec 文件,但是对不同的项目使用定制的方式...在NuspecFile就需要指定nuspec文件所在的路径,这里用的是相对的路径。最后设置IsTool只是用来告诉安装 Nuget 的程序,这是一个工具 nuget 包没有引用。...nuget 文件的不相同,第一个是id使用的是$id$ ,这里的id就是使用占位符,可以在项目文件使用 target 的方式替换占位符。...Target 这里是在创建 nuget 文件的时候才使用。...从上面的代码可以看到我多设置了一个dll的字符串,在nuget文件是不存在这个dll字符串,但是也没有问题。
打包成.nupkg包 ? 首先运行.\nuget sepc 生成.nuspec配置文件,用于nuget的配置项 然后运行.\nuget pack packageName 发布成nuget包 3....,默认创建的dll是没Version, AssemblyVersion, FileVersion节点,需要自己手动添加;以及在更新版本后 .nuspec文件会根据版本重新创建一个: ?...1.3 配置nuget源 1. 本地文件包的方式 配置本地Nuget源。在工具 nuget包管理器 -> 程序包源,做如下配置 ? 然后把发布的.nupkg包放在此文件夹即可 2....引用包 在vs中的引用 ? 在vscode中的引用 配置nuget.config配置文件 在windows上搭建 此方式更为简单,因为nuget上有现在的nuget.server这包,就是用于做这件事情的。
但是,您是否曾经尝试并创建过一个nuget包呢?Nuget软件包比较容易引入到类库中。因此,可以使用NuGet软件包管理器将nuget软件包添加到任何项目中。...因此,只需查看其中的文件夹和文件。 icon.png: 这是您的NuGet包的图标文件。现在已将其嵌入.nupkg中,但在早期版本的NuGet中只能定义为url。....nuspec nuspec是关于nuget包的元数据文件。在早期版本中,它曾经用于打包nuget包。但是在新的dotnet CLI中,此文件是由roslyn编译器从您的.csproj文件生成的。...在Visual Studio中创建类库后,只需右键单击并转到属性。您可以在“打包”标签下看到所有可以填写的字段。...转到nuget.org并登录到你的帐户。然后导航到“发布”选项卡,并将您的.nupkg文件拖放到该页面中。填写有关包裹的信息字段并提交。仅此而已!这是在nuget.org上发布软件包的最简单方法。
大致的意思:NuGet 是一种 Visual Studio 扩展工具,它能够简化在 Visual Studio 项目中添加、更新和删除库(部署为程序包)的操作。...STEP5 产生并修改nuspec nuspec是NuGet将项目打包成nupkg的输入文件,可以通过nuget spec命令产生。...用记事本打开NuGetTest.nuspec文件,注意里面的$xxx$宏,这些就是引用了AssemblyInfo.cs中的设置值,在编译产生package的时候,会使用AssemblyInfo.cs中的相应值进行替换...STEP8 测试以及更新类库包 在解决方案中右键解决方案—-管理解决方案的NuGet程序包—-联机,输入自己的类库包名。安装就可以了。...,在更新中找到自己更新的包更新就可以了。
首先把自己编译好的包全部准备到一个文件夹 像这样 ? 接下来新建一个文本文档,后缀名叫.nuspec 填写内容 中的标签,可用于标签搜索 --> cpp parsing web rpc 开始打包 nuget pack grpc-1.20.0-v141.nuspec 现在,在档期按目录下面生成了一个叫...Google.Grpc.1.20.0.nupkg的包 接下来本地安装我们的包,测试包的可用性 nuget add Google.Grpc.1.20.0.nupkg -Source E:\nuget\packages...可以看到E:\nuget\packages下面新建了一个包ID相关的文件夹,里面包含了我们刚才打包的包 接下来试试安装 nuget install Google.Grpc -Source E:\nuget
通常用官方提供的安装脚本或软件源安装都是安装的比较新 Docker 版本,有时我们需要在一些特定环境的服务器上安装指定版本的 Docker。今天我们就来讲一讲如何安装指定版本的 Docker 。.../yum.dockerproject.org/gpg EOF 更新软件源 Ubuntu $ apt-get update CentOS $ yum makecache 显示软件源中所有Docker软件包安装信息...这里以安装 1.13.1 版本为例: Ubuntu 如果 Ubuntu 为 14.04 建议先装上以下两个软件包。...raw=true | sh 使用需要的 Docker 版本替换以下脚本中的 ,目前该脚本支持的 Docker 版本: 1.10.3 1.11.2 1.12.1 1.12.2 1.12.3 1.12.4...1.12.5 1.12.6 1.13.0 1.13.1 17.03.0 17.03.1 17.04.0 注:脚本使用 USTC 的软件包仓库,已基于 Ubuntu_Xenial , CentOS7 以及
A:\smms\smms 进入文件夹命令 首先进入盘,我是在A盘, a: 然后进入文件夹 cd smms/smms 我们打包 首先 nuget spec smms.nuspec 这个可以用文本打开,...owners 拥有者:你可以随便写,但是在发布的时候会被你的nuget帐户名替代。 最低客户端版本:描述这个包限制的最低nuget客户端版本。...iconUrl 一个32*32像素的.png文件地址,作为最终在nuget中显示的图标 描述、标签、许可地址、项目地址 Dependencies 我们发的依赖其他程序,那就写他,具体怎么我还不知...说明: Tags 的值“Tag1 Tag2”是示例值,应将其删除。 解决方案: 请替换为适当的值或删除它,然后重新生成程序包。 问题: 删除示例 nuspec 值。.../Packages 我们上传包,如果还要上传,我们的version要比之前大 我们在 搜索不到,不过我们还是上传了 安装 Install-Package ID 安装完搜索就可以搜索到 参见:http
NuGet 自身负责在 nuget.org 中维护包含 100,000 多个唯一包的中央存储库。这些包每天供数以百万的 .NET/.Net Core 开发人员使用。...然后使用者在可访问的主机上搜索安装nuget包到项目中,这样项目就可以利用包提供的功能。如图 ?...可以在微软文档中(https://docs.microsoft.com/en-us/nuget/reference/nuspec)找到有关nuspec的更多详细信息 发布包到公共Host 创建 API...在我们的例子中,源是nuget.org 我们登录到nuget.org查看我们的软件包: ?...可以进行管理,发布之后,稍等几分钟会在nuget.org中进行搜索到 在vs中浏览我们的nuget软件包 管理nuget程序包->搜索我们刚发布的软件包,AA.Nlog。 ?
或 记事本,用来编辑文件 文件夹方式 一个可以解析的 nuget 包是需要包括指定的一些文件的,最主要就是.nuspec文件,其他的文件都不是必要的 下面来告诉大家做一个空白的 nuget 包 创建空白的...nuget 包 首先创建一个空白文件,文件的后缀名是 nuspec ,文件名就是打包名 下面我创建 lindexi.nuspec 这个将会打出空白的 nuget 包 使用 SublimeText 打开...在我设置了 nupkg 文件所在的文件夹之后,就可以在 VisualStudio 点击浏览,可以找到打出来的 nuget 包 ?...,看到这里就是已经告诉大家做的源码包的最简单方法 安装源码包 打开 VisualStudio 创建一个新的项目,在 nuget 设置刚才的 nuget 包所在文件夹,然后点击浏览就可以安装 ?...,添加的集合就可以在编译引用 上面代码就是添加了lindexi.cs文件作为编译,上面用到常量,请看项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) - walterlv 所以在使用这个包就可以自动添加代码
\runtimes 文件夹中的所有文件引入包中。...我们取 x86 下的这两个 dll,将其让入 NuGet 的 ref 文件夹中。...托管、C++/CLI 和本机依赖包(双包) 双包方案旨在解决托管程序集和 C++/CLI 程序集无法在同一个 NuGet 包中被引用的问题。...目标框架需与原来一模一样;也要 GeneratePackageOnBuild 来标记生成 NuGet 包;使用 ProjectReference 引用原来的项目,这样可以在生成的 NuGet 包中自动标记原来的...NuGet 的依赖安装 .NET Framework 项目 对于 .NET Framework 项目,项目编译后,NuGet 会自动将本机依赖包里对应架构和框架的文件拷贝到输出目录中,于是你就能正常运行你的程序了
领取专属 10元无门槛券
手把手带您无忧上云