如何停止ServiceStack 3.9.71 NuGet软件包安装ServiceStack.Text 4.0.24?

如何停止ServiceStack 3.9.71 NuGet软件包安装ServiceStack.Text 4.0.24?,
Warning: implode(): Invalid arguments passed in /data/phpspider/zhask/webroot/tpl/detail.html on line 45
,,我有一个使用ServiceStack的项目;我们正在运行旧的3.9.x代码库,而不是升级到4.x,因为ServiceStack 4需要商业许可证 我自己的API客户端在.nuspec文件中定义了一个依赖项,如下所示: <dependencies> <dependency id="DotNetOpenAuth.OAuth2.Client" version="[4.3,5)" /> <dependency id="log4net" version="[2.0,2

我有一个使用ServiceStack的项目;我们正在运行旧的3.9.x代码库,而不是升级到4.x,因为ServiceStack 4需要商业许可证

我自己的API客户端在
.nuspec
文件中定义了一个依赖项,如下所示:

<dependencies>
  <dependency id="DotNetOpenAuth.OAuth2.Client" version="[4.3,5)" />
  <dependency id="log4net" version="[2.0,2.1)" />
  <dependency id="ServiceStack" version="[3.9.71,4)" />
</dependencies>


问题是,ServiceStack包依赖于ServiceStack框架的各种其他位,安装ServiceStack 3.9.71就是在我的项目中安装ServiceStack.Textv4.0.24。它确实会弹出一个需要许可证接受的对话框,这提醒我发生了一些奇怪的事情——但除了手动定义我自己对其他必需的ServiceStack组件的依赖关系之外,如何确保我的项目中不会出现未经许可的ServiceStack 4.x?

在.nuspec中显式显示ServiceStack.Text依赖项,并将其放在ServiceStack依赖项之前

<dependencies>
  <dependency id="DotNetOpenAuth.OAuth2.Client" version="[4.3,5)" />
  <dependency id="log4net" version="[2.0,2.1)" />
  <dependency id="ServiceStack.Text" version="[3.9.71,4)" />
  <dependency id="ServiceStack" version="[3.9.71,4)" />
</dependencies>

这将强制NuGet使用约束解析ServiceStack.Text

仅使用版本范围安装ServiceStack的问题[3.9.71,4)是NuGet解析ServiceStack.Common依赖关系到最低兼容版本的ServiceStack.Common,它确定的是版本3.9.11.ServiceStack.Common 3.9.11没有为ServiceStack指定依赖范围。Text因此NuGet安装了4.0版本。ServiceStack的更高版本。Common有但是旧版本的ServiceStack.Text包没有。因此,如果不显式显示依赖项或更改ServiceStack.Text NuGet包使其位于某个范围内,那么在安装NuGet包时,您就没有什么可以做的了

您唯一可以做的另一件事是在packages.config文件中设置一个约束,以防止安装更新版本的ServiceStack

<packages>
    <package id="ServiceStack.Text" version="3.9.71" allowedVersions="[3.9.71,4)" />
</packages>

我为此制作了自己的“包装器”包,其中不包含额外的文件,只包含依赖项-如下所示:

<dependencies>
  <dependency id="ServiceStack.Text" version="[3.9.71]" />
  <dependency id="ServiceStack.Common" version="[3.9.71]" />
  <dependency id="ServiceStack.Redis" version="[3.9.71]" />
  <dependency id="ServiceStack.OrmLite.SqlServer" version="[3.9.71]" />
  <dependency id="ServiceStack" version="[3.9.71]" />
</dependencies>