我是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个,主要是由于此问题,以及由于相关项目无法生成其项目Metadata file "..." could not be found
而出现的Dlls
错误。
我们无法在适当位置升级Nuget,并且由于已使用在密钥包中引用了不赞成使用的方法的代码,因此无法使用Manage Nuget Packages for Solution
进行升级。
答案 0 :(得分:0)
如果使用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的较新版本。