首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

.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管理中的程序源选择离线的源即可。

1.9K80

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

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

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

探索 .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.1K30

探索 .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

65810

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

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

96720

.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.4K50

.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 方式作为包管理格式

2.7K21

.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.3K21

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...感谢参与项目的你们!

1K30

.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.1K20

如何从零开发一个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.3K30

微软官方的 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

29110

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

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

1.6K20

教程:创建模板

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

65410

.net core迁移实践:项目文件csproj的转换

其中包含了项目的编译配置、调试生成配置、大量的nuget文件依赖、大量的cs源代码文件路径等,造成了此文件内容的非常繁多,阅读和分析都有比较大的困难。...其中TargetFrameworks配置项目的多目标平台,可选的值有netstandard2.1;net451;netcoreapp3.1,三种格式分别代表net standard、net framework...另外针对nuget依赖的文件也是如此,csproj不再维护nuget内的文件明细,而改为PackageReference以nuget为单位来管理依赖。...调整的依赖nuget和直接引用的程序集dll 这一步对nuget有要求,需要其提供netstandard平台的版本,如下图: ?...如果是公司内部的nuget就需要提前做好支持,而如果是依赖的第三方nguet那就需要确认是否有net core支持了。 不过当前net core已成趋势,绝大多数流行的nuget都能够支持了。

1.2K30
领券