【问题标题】:Unable to find version '4.2.1.188' of package 'Glass.Mapper'找不到包“Glass.Mapper”的版本“4.2.1.188”
【发布时间】:2019-06-21 18:05:55
【问题描述】:

我是 Sitecore 和 Glass.Mapper 工具的新手。我正在使用 Visual Studio 2013 和 Sitecore 8.1 寻找我已经开始研究的解决方案(不是作者)。

由于我观察到的其他问题,我将尝试演示我的解决方案现在包含什么来消除构建错误。

我的 packages.config 包括以下内容:

<package id="Glass.Mapper" version="4.2.1.188" targetFramework="net45" />
<package id="Glass.Mapper.Sc" version="4.2.1.188" targetFramework="net45" />

我的 nuget.config 包括以下内容:

<?xml version="1.0" encoding="utf-8"?>
  <configuration>
  <solution>
    <add key="disableSourceControlIntegration" value="true" />
  </solution>
  <activePackageSource>
    <add key="All" value="(Aggregate source)" />
  </activePackageSource>
  <packageSources>
    <add key="nuget v2" value="https://www.nuget.org/api/v2" />
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
  </packageSources>
</configuration>

我已将这些作为项目引用添加到我们的 Packages 目录中的每个 Dlls,其中还包括一些项目中的以下内容:

  <package id="Glass.Mapper.Sc.CastleWindsor" version="3.3.0.25" targetFramework="net45" />
  <package id="Glass.Mapper.Sc.Core" version="4.2.1.188" targetFramework="net45" />
  <package id="Glass.Mapper.Sc.Mvc-5" version="3.3.0.45" targetFramework="net45" />

解决方案错误已从数百个减少到约 20 个,主要是由于此问题,以及由于依赖项目无法生成其项目 Dlls 而出现的 Metadata file "..." could not be found 错误。

我们无法就地升级 Nuget,也无法使用 Manage Nuget Packages for Solution 执行升级,因为现有代码引用了关键包中已弃用的方法。

【问题讨论】:

  • 与您的问题无关,但是在您的包源中同时包含 NuGet v2 和 v3 提要会使您的恢复速度变慢而没有任何好处。我强烈建议您从 nuget.config 中删除 v2 api 提要。

标签: nuget sitecore glass-mapper


【解决方案1】:

如果您使用 Web 浏览器浏览 nuget.org 上的包,您可以猜测查看特定版本包的模式。因此,GlassMapper 4.2.1.188 版将使用 URL https://www.nuget.org/packages/Glass.Mapper/4.2.1.188

在那里,我看到一条消息说

所有者已取消列出此包。这可能意味着该软件包已被弃用或不应再使用。

所以这个包是存在的,所以现有的包应该可以恢复它,但是所有者已经将它下架了,以减少新项目开始使用它的可能性。有趣的是,包所有者已经删除了该包的所有版本,这表明该包已被弃用。

无论如何,正如我所提到的,通常仍然可以恢复包(这就是取消列出与删除的重点)。所以我最好的猜测是,适用于 Visual Studio 2013 的 NuGet 版本不支持未列出的包,因为它非常非常旧。

您可以从 nuget.org/downloads 下载 nuget.exe,从命令行恢复,然后使用 Visual Studio。否则,您可能需要升级到较新版本的 Visual Studio。

【讨论】:

  • 谢谢。我们目前坚持使用 VS 2013,解决方案是使用非常旧的 Nuget 版本。此外,项目无法升级到 .Net 4.5 以上。所有这些都造成了过度的困难和许多工时的浪费。那么您是否建议我删除我的包引用并在 \bin 中手动添加 DLL,因为我们已经实现了这个版本的 Glass.Mapper?
  • 您可以将包复制到私有 nuget 提要并使用 nuget.config 文件将该提要用于您的解决方案。我可能应该在写答案时记住/建议这一点。
猜你喜欢
  • 1970-01-01
  • 2016-12-08
  • 2020-08-19
  • 2014-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-09
  • 1970-01-01
相关资源
最近更新 更多