Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Nuget 自动化.net framework包安装:解决包对其他包的依赖性_Nuget_Visual Studio 2019_.net Framework Version_Package Manager Console - Fatal编程技术网

Nuget 自动化.net framework包安装:解决包对其他包的依赖性

Nuget 自动化.net framework包安装:解决包对其他包的依赖性,nuget,visual-studio-2019,.net-framework-version,package-manager-console,Nuget,Visual Studio 2019,.net Framework Version,Package Manager Console,长话短说:我试图通过VS2019 package manager控制台在解决方案中自动更新package.net framework nuget,但我无法获得与其他软件包的依赖关系(尽管我知道数据可用,因为您可以在UI中看到它) Long story Long:我正在尝试自动化.net framework的nuget安装,我选择使用visual studio中的package manager控制台(如果有首选选项,我很乐意听到)。我试图解决的问题是: 问题输入:包A:版本1,依赖于包B版本1。版

长话短说:我试图通过VS2019 package manager控制台在解决方案中自动更新package.net framework nuget,但我无法获得与其他软件包的依赖关系(尽管我知道数据可用,因为您可以在UI中看到它)

Long story Long:我正在尝试自动化.net framework的nuget安装,我选择使用visual studio中的package manager控制台(如果有首选选项,我很乐意听到)。我试图解决的问题是: 问题输入:包A:版本1,依赖于包B版本1。版本2依赖于包Bversion>2程序包B:版本1。版本2有一个突破性的变化包C:版本1依赖于包B版本>1

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

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

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

感谢您的帮助:)

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

我们无法使用nuget管理控制台获取包依赖项。除了查看nuget包依赖项的UI之外,我们还可以从nuget项目A中的csproj文件中获取依赖项。这是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>

3.5.0.2
3.0.0
另一个是,您可以通过nuspec文件查看包依赖关系,该文件由命令
nuget spec
如果您使用nuspec文件强制依赖关系),这是打包项目之前使用的文档

编写安装过程脚本,提示用户输入这些类型 依赖关系的定义

注意:鉴于您的情况,您不能在同一项目中使用两个版本的nuget软件包,这将导致版本冲突

建议

  • 我想知道你为什么在升级B时删除了C所需的方法。基本上,当我们升级和修改包时,我们将在不删除原始数据和方法的情况下为其添加新功能,以防止对项目中其他依赖包的引用使用相应的方法。 这样您就可以在包B版本2中恢复C包所需的方法。

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


  • 希望能对您有所帮助。

    谢谢!使用nuspec文件可以满足我的需要。