首页
学习
活动
专区
圈层
工具
发布

.NET Core系列 : 2 、project.json 这葫芦里卖的什么药

对于.NET Core来说,所有使用到的程序集都被打包成一个NuGet包,所以针对程序集的直接依赖转变成针对某个NuGet包的依赖。...他们是可以嵌套的,在最高一级的依赖项,将是所有的Frameworks所依赖的,也可以针对一个具体的Framework 构建它的依赖关系,不同的Framework使用不同版本的依赖项。...NETStandard.Library 上面我们创建的项目是个应用程序,当我们回到类库的时候,在依赖项里会发现一个NETStandard.Library: {   "version": "1.0.0-*...": {       "dependencies": {         "NETStandard.Library": "1.6.0"       }     }   } } 这也是一个NuGet 程序包...,在nuget管理中也可以看到这是默认的离线包目录,我们需要什么样的包只要把它复制到这个目录,在nuget管理中的程序包源选择离线的源即可。

2.5K80

如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包

如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 发布于 2018-05-11 16:04...---- 关于创建跨平台 NuGet 工具包的博客,我写了两篇。...我分为两篇可以减少完成单个任务的理解难度: 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 第零步:前置条件 第一步...要特别注意:由于我们是一个 NuGet 工具,不需要被其他项目直接依赖,所以此项目的依赖包不应该传递到下一个项目中。...总结 不得不说,制作一个跨平台的基于 MSBuild Task 的 NuGet 工具包还是比较麻烦的,我们总结一下: 准备项目的基本配置(设置各种必要的项目属性,安装必要的 NuGet 依赖) 建立好

1.7K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    探索 .Net Core 的 SourceLink

    介绍 Source Link是一组软件包和一个规范, 它将一些元数据添加到PDB文件,以将本地文件重新映射到GitHub上的文件,因此Visual Studio可以在这需要时下载文件, 该项目的目的是可以为使用...使用NuGet包是向项目添加依赖项的一种非常方便的方法,但是,当您遇到NuGet软件包的问题并想对其进行调试时,会有点麻烦,你可能需要从在github 查看源代码,或者直接git clone到本地, Visual...symbol packages) 的地址,它包含了源代码文件的url地址 Newtonsoft.Json 是我经常使用的一个软件包, 也是 Nuget 下载量第一的包,我想看一下它的源代码,了解如何进行序列化的...\Src\Newtonsoft.Json\JsonSerializer.cs 在项目中使用SourceLink 接下来我会创建一个 netstandard2.0 版本的类库项目,它的源码放在了github...,并且我会发布到 Nuget.org,当然其他方式(Azure Devops,Gitlab) 也是支持的,让它支持SourceLink 创建完成后,首先需要引入 Microsoft.SourceLink.GitHub

    1.3K30

    如何创建一个基于命令行工具的跨平台的 NuGet 工具包

    如何创建一个基于命令行工具的跨平台的 NuGet 工具包 发布于 2018-05-12 01:09 更新于...---- 关于创建跨平台 NuGet 工具包的博客,我写了两篇。...我分为两篇可以减少完成单个任务的理解难度: 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 第零步:前置条件 第一步...导入,成为项目的一部分(要求文件名与包名相同) + build/ // 这里也是放 .props 和 .targets 文件,会自动被 NuGet 导入,成为项目的一部分(要求文件名与包名相同) +...第三步:编写 Target .targets 文件是对项目功能进行扩展的关键文件,由于安装 NuGet 包会自动导入包中的此文件,所以它几乎相当于我们功能的入口。 现在,我们需要徒手编写这个文件了。

    1.3K20

    探索 .Net Core 的 SourceLink

    介绍 Source Link是一组软件包和一个规范, 它将一些元数据添加到PDB文件,以将本地文件重新映射到GitHub上的文件,因此Visual Studio可以在这需要时下载文件, 该项目的目的是可以为使用...使用NuGet包是向项目添加依赖项的一种非常方便的方法,但是,当您遇到NuGet软件包的问题并想对其进行调试时,会有点麻烦,你可能需要从在github 查看源代码,或者直接git clone到本地, Visual...[3] Newtonsoft.Json 是我经常使用的一个软件包, 也是 Nuget 下载量第一的包,我想看一下它的源代码,了解如何进行序列化的,我新建了一个 .Net Core 的控制台项目,现在断点在序列化的这一步...\Src\Newtonsoft.Json\JsonSerializer.cs 在项目中使用SourceLink 接下来我会创建一个 netstandard2.0 版本的类库项目,它的源码放在了github...,并且我会发布到 Nuget.org,当然其他方式(Azure Devops,Gitlab) 也是支持的,让它支持SourceLink 创建完成后,首先需要引入 Microsoft.SourceLink.GitHub

    80710

    .NET Core 系列5 :使用 Nuget打包类库

    ] [--version-suffix] [] 描述 dotnet pack 命令生成项目并创建 NuGet 包。...这个操作的结果是两个 nupkg 扩展名的包。一个包含代码,另一个包含调试符号。 该项目被依赖的 NuGet 包装被添加到 nuspec 文件,因此,他们能够在安装包时得到解决。...我们来看下Nuget 包里的具体内容,我们可以用 NuGet Package Explorer 工具打开DotnetNewLib.1.0.0.nupkg: 里面仅有一个 lib 文件 netstandard1.6...这意味着,我们 NuGet 包只适用于.Net Core 应用程序 针对 NetStandard1.6 (和即将到来的 4.6.3),文章 拥抱.NET Core,如何开发一个跨平台类库 (1) 对Nuget...包做了很好的说明了,推荐大家阅读, 园子里还有一篇《用命令行工具创建 NuGet 程序包》对Nuget 的详细内容做了讲解。

    1.6K50

    .NET Standard中配置TargetFrameworks输出多版本类库

    3、创建完成后,查看“解决方案资源管理器”,项目下面多了一个“依赖项”节点,子节点是SDK,孙子节点是 NETStandard.Library(2.0.3)。 ?...重新加载后,依赖项中出现了如下图所示的3个项 ? 展开每个项查看, 每个版本的程序集对应一个单独的依赖项节点。 ?...默认在 sln 文件的同级也没有创建一个 packages 文件夹。 ? 而是将dll下载到了C:\Users\当前登录用户\.nuget目录下,这与java的Maven管理方式类似。....netstandard2.0 中多了一个 ZCN.NET.BIMFace.SDK.deps.josn 文件,里面包含了运行时环境以及依赖项等信息 ?...之后希望能编辑的文件仅仅只是一个链接而已,如何让它包含在项目里面呢,请参考微软官方文档 NuGet ContentFiles揭秘,带回解决方案级包的讨论 PackageReference 方式作为包管理格式

    3.5K21

    .NET Standard SDK 样式项目中的目标框架

    包表示形式   .NET Standard 引用程序集的主要分发载体是 NuGet 包。 实现会以适用于每个 .NET 实现的各种方式提供。   NuGet 包面向一个或多个框架。....NETStandard.Library 元包引用定义 .NET Standard 的一整套 NuGet 包。 要指定 netstandard 作为目标,最常见的方法是引用此元包。...它描述并提供了对大约 40 个 .NET 库及定义 .Net Standard 的相关 API 的访问权限。 可以引用以 netstandard 为目标的其他包来使用其他 API。...元包 是一个 NuGet 包,NuGet 包本身不包含任何内容,只是一个依赖项列表(其他包)。 基于 NuGet 包的目标框架隐式指定一个元包,该元包引用一起构成框架的所有包。...下表显示 .NET SDK 和 NuGet 客户端支持的目标框架。 等效项显示在括号内。 例如,win81 对于 netcore451 来说等效于 TFM。 ? ?

    1.6K21

    FreeSql 配套工具,基于 Razor 模板实现最高兼容的生成器

    从之前的一个 dll 到拆分成小包,我们总共耗时两天,虽然都在一个项目内开发,但其实耦合性并不高,so easy!! 车到山前必有路,时机到了自然会拆。...在实现拆分小包后,其实 FreeSql 的模块更加清淅,并且依赖项非常之少,然后比较容易的做出了 4.5 framework 的适配。...然后就有一些人,特别是高手的那些来提出要求,适配一个 MySqlConnector 的实现,然后著名的 A大(茶叔)提了一道 PR ,创建了 FreeSql.Provider.MySqlConnector...然后就有了现在新的驱动包: Package Name Version FreeSql.Provider.MySqlConnector NETStandard2.0、net45 然后 FreeSqlBuilder...感谢参与项目的你们!

    1.2K30

    .NET Core 多框架支持(net45+netstandard20)实践中遇到的一些问题总结

    id=56116 问题2:多个TargeFramework 导致关于Nuget包引用的问题 问题来源:这个问题是因为自己打包生成时的一个坑,忘记添加 Assembly Version了,导致发布出去的包找不到引用的程序集...2.1 问题描述: 关于 Nuget 包解析的,有个最近项原则, 详情可参考NuGet 如何解析包依赖项 用一张微软的图来解释就是: ?...今天遇到的一个问题是,我的一个Nuget包(称之为 Package A 当前版本为 1.2.3 )本来只支持 netstandard 2.0 的版本,csproj 文件中的定义为 netstandard2.0 我有另外一个产品ECS Nuget 包(称之为 Package B 版本为 1.0.0),Package B 需要引用 Package...微软在Nuget针对这个专门发布了一个Nuget包,想要查看详细 Issue 的可以在这里查看 https://github.com/dotnet/designs/pull/33 Nuget上面包的地址为

    2.5K20

    如何从零开发一个NuGet软件包?

    但是,您是否曾经尝试并创建过一个nuget包呢?Nuget软件包比较容易引入到类库中。因此,可以使用NuGet软件包管理器将nuget软件包添加到任何项目中。...Nuget包的剖析 Nuget软件包不仅是dll文件。NuGet包是可移植的,它包含您要放入.Net项目中的所有内容。您可以在其中放置txt文件或png文件。这就是为什么我们称它们为“包裹”。...创建你的第一个库 每一个开发者都应该知道类库。它们很难移动或用于不同的项目。因为它们的输出是dll文件。在本文中,我不会谈论如何构建库。我将展示如何将它们转换为可移植的nuget包。...顺便说一句,你可以建立一个多目标项目。您可以从此处阅读有关多目标项目的更多信息。 2-填充元数据 在我们所处的时代,MetaData是最重要的事情。...首先,您需要一个Api-Key与nuget API通信。转到nuget.org上的个人资料,然后找到“ API密钥”部分,如下所示。 ? 创建一个API密钥并保存它。您将无法再次看到它。

    1.6K30

    微软官方的 NuGet 包是如何做到同时兼容新旧框架的?例如 System.ValueTuple 是如何做到在新旧版本的框架都能使用的?

    并且,这些包即便安装到本来就有此类型的新框架上也能正常运行而不会出现多处类型定义的问题。 这些类型是如何做到框架内定义了,包里也定义了,却能像同一个类型一样作为参数和返回值传递?...示例项目 首先,我们需要有一个示例项目,用来观察 System.ValueTuple 在框架内和 NuGet 包内的一些行为。 创建一个 .NET Core 控制台项目。...可发现它提供了这些不同框架的支持: 其中: net47 框架使用的是 TypeForwardedTo 的垫片 net461 / netstandard1.0 / portable-net40+sl4+..._,这个文件的出现仅仅是为了能让 zip 里面有一个对应框架的文件夹。而 zip 对空文件夹的支持并不好,所以加一个这样的文件可以避免文件夹消失,造成 NuGet 认为不支持这样的框架。...额外的,我写过另一个通过此方式获得新旧框架兼容的包: 杂谈 System.Drawing.Common 的跨平台性 - walterlv 参考资料 What do mean . files in nuget

    70110

    自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference

    只有一个步骤:在 packages.config 文件上点击右键,选择 Upgrade to PackageReference。 ? 紧接着,稍微等待一下,即可完成一个项目的迁移。...如果有一些行为依赖于此脚本,那么这个 NuGet 包的行为可能不正常。 但是,不用担心!...如果是使用默认的方式创建的 NuGet 包,基本上不会遇到这样的问题。除非你在创建 NuGet 包时有自定义操作在根目录放了程序集。...packages.config 方式的包引用要求在 csproj 文件中显式指定一个依赖的包的版本,于是无论依赖使用了哪个版本,最终都由显式指定的版本来指定。...这时需要将项目的依赖方式改为之前的方式。 当然,在制作和发布 NuGet 包时,尽量使用非特定版本的依赖包,能够极大地避免这种问题带来的影响。

    1.9K20

    教程:创建模板包

    在本系列的这一部分中,你将了解如何: 创建一个 *.csproj 项目以生成模板包 配置项目文件以进行打包 从 NuGet 包文件安装模板包 按包 ID 卸载模板包 先决条件 完成本系列教程的第 1 部分和第...创建模板包项目 模板包是打包到 NuGet 包中的一个或多个模板。 安装或卸载模板包时,将分别添加或删除包中包含的所有模板。 本系列教程的前几部分仅适用于各自的模板。...由于模板包中可以包含多个模板,并且是单个文件,因此共享更容易。 模板包由 NuGet 包 (.nupkg) 文件表示。 并且,与任何 NuGet 包一样,可以将模板包上传到 NuGet 源。...但是,该项目也可用于生成模板包。 通过更改 .csproj 的设置,可以阻止它编译任何代码,而是将模板的所有资产都包含在内作为资源。 生成此项目后,它会生成模板包 NuGet 包。...将要创建的包将包含先前创建的项模板和包模板。 由于我们将两个模板分组到 working\templates\ 文件夹中,因此可以使用 .csproj 文件的 working 文件夹。

    82910
    领券