在前段时间我写了一篇迁移 csproj 格式的博客 将 WPF.UWP 以及其他各种类型的旧样式的 csproj 文件迁移成新样式的 csproj 文件,不过全过程是手工进行的,而且到最后处理 XAML 问题也非常头疼. 现在,我们可以利用工具自动地完成这个过程.当然,工具并不将 csproj 格式进行迁移,而是在不迁移格式的情况下,使用到 PackageReference 方式 NuGet 引用带来的好处.   自动升级 下载安装 Visual Studio 插件 NuGet PackageR…
最近我将项目格式进行了升级,从旧的 csproj 升级成了新的 csproj:NuGet 包管理的方式也从 packages.config 升级成了 PackageReference.然而迁移完才发现,这个项目竟然还依赖了大量的从 NuGet 2.x 时代发布的 NuGet 包,这些包并不能在 PackageReference 下好好工作. 于是,我准备将所有这些包都进行升级.本文将介绍最简单的升级步骤.   回顾遇到的问题 如果你之前迁移过 csproj 文件,可能会遇到问题.关于迁移 csp…
关于NuGet的介绍已经很多,可以参考下面的: NuGet学习笔记(1)--初识NuGet及快速安装使用 http://kb.cnblogs.com/page/143190/ NuGet学习笔记(2)--使用图形化界面打包自己的类库 http://kb.cnblogs.com/page/143191/ NuGet学习笔记(3)--搭建属于自己的NuGet服务器  http://kb.cnblogs.com/page/143192/ 上面的文章介绍了搭建Web版本的NuGet服务器以及用图形化的方…
在VisualStudio项目中,可以在每次编译成功后自动发布nuget包,具体配置过程如下:   1.下载nuget.exe,放置在Visual Studio项目的根目录下.   2.通过命令行生成*.nuspec文件,并编辑相关属性.详细过程可以参加下面两篇文章: [ASP.NET]利用Nuget打包package——命令行方式 [ASP.NET]利用Nuget打包package——GUI方式   3.在项目根目录下,新建build.bat文件,编写脚本如下:     nuget pack …
1.项目中有类库YesWay.Nlog.RabbitMQ,依赖项如下YesWay.Nlog.RabbitMQ=>YesWay.Service.Discovery=>YesWay.Log 2.需求: YesWay.Log需要依赖YesWay.Nlog.RabbitMQ 3.测试: 进行了如下测试: a.直接在YesWay.Log项目中nuget获取YesWay.Nlog.RabbitMQ会检测到包循环引用问题 b.制作好YesWay.Log类库包,通过包制作工具添加依赖YesWay.Nlog.R…
第一步搭建NuGet服务器 创建空Web项目 安装Nuget服务,目前最新版本2.8.2 安装完成,会自动生产服务,出现如下界面 发布该网站,并部署至IIS 将.nupkg文件发布至网站的Packages目录. 在VS中修改NuGet引用路径 注意把自定NuGet放在首位,这样每次搜索都默认从MyNuGet开始. 以上就成功部署了自己的NuGet服务器了.关于.nupkg文件其实就是程序的安装包压缩文件,它包含了程序包的版本信息,dll及相关的外部依赖,NuGet安装包时会进行自动解压.因此上传…
知道了 csproj 文件中的一些常用 NuGet 属性,创建 NuGet 包时就可以充分发挥新 Sdk 自动生成 NuGet 包的优势,不需要 nuspec 文件啦.(毕竟 nuspec 文件没有 .csproj 和 .targets 文件强大而又有扩展性.) “项目文件中的已知属性系列”分为两个部分: 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) - 吕毅 本文:项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec…
nuget 是如何还原包的 Intro 一直以来从来都是用 nuget 包,最近想折腾一个东西,需要自己搞一个 nuget 包的解析,用户指定 nuget 包的名称和版本,然后去解析对应的 nuget 包并添加引用到项目, 于是就想搞明白 nuget 包是怎么还原的,对于本地已经下载了的 nuget 包又是怎么找的 Nuget 包的引用 对于 dotnetcore 项目(这里不算之前那种 project.json 的项目,只讨论 *.csproj 这种项目),都是使用新的项目格式,Package…
背景: 在项目中, 通常会拆分成核心库(Core)和应用(App)两个部分.核心库由专人维护, 不同的App是不同的团队,但都引用了核心库.当核心库需要升级更新时,有的应用会更新,有的不会--可能是没必要,可能是应用本身更新.部署限制条件多.因此,会造成多版本并存的情况. 使用NuGet来做多版本的管理和分发是一件普遍接收的事情.Visual Studio 可以直接将csproj项目制作成一个NuGet包, 但是只能包含这个项目本身编译的dll:如果当前项目还引用了其他的csproj项目,这些引…
错误信息如下: 严重性 代码 说明 项目 文件 行 禁止显示状态错误 NU1107 Microsoft.EntityFrameworkCore 中检测到版本冲突.直接安装/引用 Microsoft.EntityFrameworkCore 2.2.4 到项目 CoreWeb 可解决此问题. CoreWeb -> CoreWeb.Entities -> Microsoft.EntityFrameworkCore.SqlServer 2.2.4 -> Microsoft.EntityFrame…