繁体   English   中英

自动化 .net 框架包安装:解决包对其他包的依赖

[英]Automating .net framework package installation: resolving package dependency on other packages

长话短说:我正在尝试通过 VS2019 包管理器控制台在解决方案中自动化包 .net 框架 nuget 更新,但我无法获得对其他包的包依赖(尽管我知道数据可用,因为您可以在用户界面)。

说来话长长:我想对.NET框架自动化的NuGet安装,我选择使用Visual Studio中的包管理器控制台(如果有我会喜欢听到关于它的最佳选择)。 我试图解决的问题是:问题输入:包 A :版本 1,依赖包 B 版本 > 1。版本 2 依赖包B版本 > 2。包 B :版本 1。版本 2 有一个打破变化。 包 C :版本 1,依赖包 B 版本 > 1。

我试图解决的问题:我有同一个项目引用的这 3 个包。 我想将包 A 升级到版本 2。它的依赖项是包 B 版本 > 2。运行包 A 更新到版本 2(通过包管理器 UI 或控制台)会将包 B 更新到版本 2。砰! - 仅在运行时,包 C 将检测到它缺少 B 版本 1 所需的方法!

我正在尝试做什么- 编写安装过程的脚本,提示用户输入这些类型的依赖项。

我的问题- 为此,我想获得一个包依赖项,但我找不到使用包管理器控制台的方法。

感谢一些帮助:)

为此,我想获得一个包依赖项,但我找不到使用包管理器控制台执行此操作的方法。

我们不能用的NuGet管理控制台来获取包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文件查看包依赖nuget spec如果您使用 nuspec 文件强制执行依赖项),这是您在打包项目之前使用的文档。

编写安装过程的脚本,提示用户输入这些类型的依赖项。

注意:针对你的情况,不能在同一个项目中使用两个版本的nuget包,会造成版本冲突。

建议

  1. 不知道为什么你升级B的时候把C需要的方法删掉了。相应的方法。 所以你可以在包B版本二中恢复C包需要的方法。

  2. 如果你对包B version2进行了较大的改动,并且恢复方法的步骤有点复杂,建议你可以专门为C包制作一个包B的副本。 只需重命名 Package B version 1 并由 Package C 引用,以将其与 B 包的第二个版本区分开来

希望能帮到你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM