自动化 .net 框架包安装:解决包对其他包的依赖性
Automating .net framework package installation: resolving package dependency on other packages
长话短说:我正在尝试通过 VS2019 包管理器控制台在解决方案中自动更新包 .net 框架 nuget 更新,但我无法获得对其他包的包依赖性(虽然我知道数据可用,因为您可以在 UI 中看到它)。
长话短说:我正在尝试为 .net Framework 自动安装 nuget,我选择使用 visual studio 中的程序包管理器控制台(如果有首选选项,我很想听听它)。我要解决的问题是:
问题输入:Package A: version 1, has dependency on package B version > 1. version 2 has dependency on package B version > 2. 包 B:版本 1。版本 2 有重大更改。 包 C:版本 1,依赖包 B 版本 > 1。
我试图解决的问题:我有同一个项目引用的这 3 个包。我想将包 A 升级到版本 2。它的依赖项是包 B 版本 > 2。运行 包 A 更新到版本 2(通过包管理器 UI 或控制台)会将包 B 更新到版本 2。 Boom! - 程序包 C 将仅在运行时检测到它缺少 B 版本 1 所需的方法!
我正在尝试做什么 - 编写安装过程脚本,提示用户输入这些类型的依赖项。
我的问题 - 为此,我想获得一个包依赖项,但我找不到使用包管理器控制台来完成它的方法。
感谢一些帮助:)
For that i want to get a package dependencies and i can't find the way
to do it using the package manager console.
我们不能使用nuget manage console获取包dependencies.In除了UI查看nuget包依赖,我们可以从csproj文件获取依赖在nuget项目A中。这是A.csproj文件中的相关内容:
<ItemGroup>
<PackageReference Include="Antlr">
<Version>3.5.0.2</Version>
</PackageReference>
<PackageReference Include="Microsoft.Extensions.Logging">
<Version>3.0.0</Version>
</PackageReference>
</ItemGroup>
另一个是你可以通过命令 nuget spec
创建的 nuspec 文件查看包的依赖关系(如果你使用 nuspec 文件来enforce dependencies),这是您在打包项目之前使用的文档。
Scripting the installation process prompting the user for these type
of dependencies.
注意:鉴于你的情况,不能在同一个项目中使用两个版本的nuget包,会造成版本冲突。
建议:
不知道为什么升级B的时候把C需要的方法删掉了,基本上我们在升级修改包的时候,会在不删除原有数据和方法的情况下,给它增加新的特性,防止使用相应的方法引用项目中的其他依赖包。
所以你可以在B包版本二中恢复C包需要的方法
如果你对B包version2做了较大改动,恢复方法的步骤有点复杂,建议你可以专门为C包制作一份B包。
只需重命名Package B版本1并被Package C引用,以区别于B包的第二个版本。
希望对您有所帮助。
长话短说:我正在尝试通过 VS2019 包管理器控制台在解决方案中自动更新包 .net 框架 nuget 更新,但我无法获得对其他包的包依赖性(虽然我知道数据可用,因为您可以在 UI 中看到它)。
长话短说:我正在尝试为 .net Framework 自动安装 nuget,我选择使用 visual studio 中的程序包管理器控制台(如果有首选选项,我很想听听它)。我要解决的问题是: 问题输入:Package A: version 1, has dependency on package B version > 1. version 2 has dependency on package B version > 2. 包 B:版本 1。版本 2 有重大更改。 包 C:版本 1,依赖包 B 版本 > 1。
我试图解决的问题:我有同一个项目引用的这 3 个包。我想将包 A 升级到版本 2。它的依赖项是包 B 版本 > 2。运行 包 A 更新到版本 2(通过包管理器 UI 或控制台)会将包 B 更新到版本 2。 Boom! - 程序包 C 将仅在运行时检测到它缺少 B 版本 1 所需的方法!
我正在尝试做什么 - 编写安装过程脚本,提示用户输入这些类型的依赖项。
我的问题 - 为此,我想获得一个包依赖项,但我找不到使用包管理器控制台来完成它的方法。
感谢一些帮助:)
For that i want to get a package dependencies and i can't find the way to do it using the package manager console.
我们不能使用nuget manage console获取包dependencies.In除了UI查看nuget包依赖,我们可以从csproj文件获取依赖在nuget项目A中。这是A.csproj文件中的相关内容:
<ItemGroup>
<PackageReference Include="Antlr">
<Version>3.5.0.2</Version>
</PackageReference>
<PackageReference Include="Microsoft.Extensions.Logging">
<Version>3.0.0</Version>
</PackageReference>
</ItemGroup>
另一个是你可以通过命令 nuget spec
创建的 nuspec 文件查看包的依赖关系(如果你使用 nuspec 文件来enforce dependencies),这是您在打包项目之前使用的文档。
Scripting the installation process prompting the user for these type of dependencies.
注意:鉴于你的情况,不能在同一个项目中使用两个版本的nuget包,会造成版本冲突。
建议:
不知道为什么升级B的时候把C需要的方法删掉了,基本上我们在升级修改包的时候,会在不删除原有数据和方法的情况下,给它增加新的特性,防止使用相应的方法引用项目中的其他依赖包。 所以你可以在B包版本二中恢复C包需要的方法
如果你对B包version2做了较大改动,恢复方法的步骤有点复杂,建议你可以专门为C包制作一份B包。 只需重命名Package B版本1并被Package C引用,以区别于B包的第二个版本。
希望对您有所帮助。