自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference 发布于 2018-04-24 10:03 只有一个步骤:在 packages.config 文件上点击右键,选择 Upgrade to PackageReference。 ? 紧接着,稍微等待一下,即可完成一个项目的迁移。 检查升级后的兼容性问题 packages.config 的 NuGet 包的管理方式有些功能是 PackageReference 没有的。 packages.config 方式的包引用要求在 csproj 文件中显式指定一个依赖的包的版本,于是无论依赖使用了哪个版本,最终都由显式指定的版本来指定。 ---- 参考资料 Migrating from package.config to PackageReference formats - Microsoft Docs packages.config
Nuget & packages.config Nuget Windows系统中,可通过%AppData%\NuGet\NuGet.config对Nuget进行配置,文件结构如下: <? packages文件夹用于存放项目引用的Nuget包: [zvdx6amfla.jpg] 我们通过Nuget命令行或者Visual Studio中的图形界面来管理Nuget包,当Nuget包发生变更时,packages.config 如,我们添加对Dapper的引用后 packages.config: <?xml version="1.0" encoding="utf-8"? 中的内容,如,直接删除packages.config中对某个包的引用,.csproj文件中依然保留了对该包的引用,及packages文件夹中也会保留该包。 这样很有可能导致项目引用的混乱,所以,不建议直接操作packages.config文件。
Nuget & packages.config Nuget Windows系统中,可通过%AppData%\NuGet\NuGet.config对Nuget进行配置,文件结构如下: <? 默认在sln文件所在目录下会生成packages文件夹用于存放项目引用的Nuget包: 我们通过Nuget命令行或者Visual Studio中的图形界面来管理Nuget包,当Nuget包发生变更时,packages.config 如,我们添加对Dapper的引用后 packages.config: <?xml version="1.0" encoding="utf-8"? 中的内容,如,直接删除packages.config中对某个包的引用,.csproj文件中依然保留了对该包的引用,及packages文件夹中也会保留该包。 这样很有可能导致项目引用的混乱,所以,不建议直接操作packages.config文件。
打开项目下面的packages.config文件,如下所示 ? ok,说明WebApi安装成功 (2)、通过程序包管理器控制台来添加WebApi的相关依赖 ? ? ok,添加成功,打开项目下面的packages.config文件,如下所示 ? ok,同样的安装成功 三、第一种傻瓜式方式和第二种从0开始搭建WebApi项目基架的区别 通过观察两者的packages.config文件发现,其实两者的还是有区别的,如下图: ?
如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference) 发布于 更新于 2018-06-29 08:52 最近我将项目格式进行了升级,从旧的 csproj 升级成了新的 csproj;NuGet 包管理的方式也从 packages.config 关于自动迁移 NuGet 包管理方式,可以阅读:自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference - 吕毅。 install.ps1 的存在是因为 packages.config 不支持 PackageReference 中的一些新特性(例如 NuGet 包中新的目录结构,例如包中自带的 msbuild targets 这样的改动是最小的,既能够保证旧的 packages.config 能够顺利迁移,也能保证新的 PackageReference 行为保持不变。
迁移到 PackageReference NuGet 引用 引用了Nuget包的旧.NET Framework项目会将引用的Nuget信息记录在packages.config文件中,例如在示例的项目中 targetFramework="net45" /> </packages> 新的SDK-Style项目文件使用PackageReference节点记录Nuget的引用信息,这样做的好处包括精简内容与以及不再需要额外的packages.config 文件,所以我们必须将packages.config迁移到 PackageReference。 要迁移到PackageReference,先尽可能升级引用的Nuget包,然后选中项目中的packages.config,在右键菜单中选中“将 packages.config 迁移到 PackageReference
第一个是以前.NET Framework时期使用包管理的方式是使用单独的 packages.config 文件进行管理。 ? 但是不建议使用packages.config,.NET Framework可以在VS中右键点击packages.config迁移到PackageReference。 ? 在.net framework的packages.config文件中看到NPOI和它的依赖项 ? 在.net 5项目文件中只有NPOI ? 第二个就是两个工具的功能有差异 ?
升级步骤 step1 :将packages.config迁移到 PackageReference(非必须) 这样做的好处包括精简内容与以及不再需要额外的packages.config文件 step2
PackageReference 原本是通过packages.config来配置引用的组件的,从介绍上说,会采用新的SDK风格,SDK风格项目的一个关键方面是PackageReference,一种引用NuGet 一句话就是PackageReference将替换packages.config。且更加牛B。
\ProjectB\ProjectB.csproj" /> 引用包 之前的 Nuget 引用需要添加 packages.config 和 csproj 才可以使用,现在的 Nuget 4 可以直接在 xunit.runner.visualstudio.2.2.0\build\net20\xunit.runner.visualstudio.props')" /> <ItemGroup> <None Include="<em>packages.config</em> lib\net45\MySql.Data.dll</HintPath> <Private>True</Private> </Reference> </ItemGroup> 新的格式写引用,不需要 <em>packages.config</em> Version="6.9.9" /> </ItemGroup> 这个格式可以在git冲突比较容易看到哪里需要修改,所以解决冲突很简单 在 nuget 2 的引用,如果引用了包A,他引用了 B ,那么就需要在 packages.config -- in packages.config --> <packages> <package id="A" version="2.2.0" targetFramework="net452" />
:存放整个项目的“视图”代码文件 文件说明: Views下面的Web.config文件:作用于视图的配置文件 Global.asax文件:全局应用程序文件,一般和App_Start文件中的类配合使用 Packages.config
<Compile Include="Properties\AssemblyInfo.cs" /> </ItemGroup> <ItemGroup> <None Include="<em>packages.config</em> packages\MSTest.TestAdapter.1.2.0\build\net45\MSTest.TestAdapter.targets')" /> </Project> 而且,还要搭配一个 packages.config 第三步:安装此前已经安装好的 NuGet 包,或者把原来的 packages.config 文件里的 NuGet 配置复制到 csproj 文件中,并统一修改格式: 从 <package id="MSTest.TestAdapter 自动迁移 自动迁移的方法我写了一篇新的博客,请阅读 自动将 NuGet 包的引用方式从 <em>packages.config</em> 升级为 PackageReference。
assembly: AssemblyVersion("1.0.0.0")] -- [assembly: AssemblyFileVersion("1.0.0.0")] 恢复 NuGet 包 打开你原有项目的 packages.config App.ico" /> </ItemGroup> </Project> 如果你觉得这一步骤比较繁琐,那么可以在本文一开始就按照这篇博客的方式进行操作:自动将 NuGet 包的引用方式从 packages.config
具体步骤如下图所示: 选择菜单【项目】-> 【管理 NuGet 程序包】,在【浏览】选项卡中输入googletest,可以看到下图的一些库 安装之后,资源文件里面多出一个packages.config
具体步骤如下图所示: 选择菜单【项目】-> 【管理 NuGet 程序包】,在【浏览】选项卡中输入googletest,可以看到下图的一些库 安装之后,资源文件里面多出一个packages.config
Entity Framework配置 当我们对项目进行Entity Framework进行安装引用的时候,同时生成了两个配置文件 packages.config文件: <? v11.0" /> </parameters> </defaultConnectionFactory> </entityFramework> </configuration> packages.config
安装完后,你会看到仓库中有两个文件发生了变化: ▲ 两个文件发生了变化 一个是 packages.config 文件,这是传统的 NuGet 包管理方式所需要的一个文件,用于记录当前项目中管理的 同样是两个文件的变化,一个是 packages.config 文件。 1 2 3 4 <?xml version="1.0" encoding="utf-8"?
安装EF5之后,我们可以看到生成了packages.config 1,创建UserController,更改返回值ActionResult为String,来创建我们编程最伟大的入门:“Hello World
应用程序文件夹 App_Data 文件夹 Content 文件夹 Controllers 文件夹 Models 文件夹 Scripts 文件夹 Views 文件夹 配置文件 Global.asax packages.config
吕毅 Roslyn 通过 Nuget 引用源代码 在 VS 智能提示正常但是无法编译 - 林德熙 如果你的 NuGet 格式是旧的,或者说引用方式是旧的,推荐升级: 自动将 NuGet 包的引用方式从 packages.config 升级为 PackageReference - 吕毅 如何最快速地将旧的 NuGet 包 (2.x, packages.config) 升级成新的 NuGet 包 (4.x, PackageReference