在新项目中找不到具有相同版本的"Glass.Mapper.Sc" "sc"命名空间



我创建了一个新的.NET XUnit Core Project,将其转换为类似于旧解决方案的其余部分,并尝试添加新测试。我意识到我需要 Glass Mapper 来制作 ISitecoreContext(我认为它可能已贬值,但我们在代码中使用它),因为这是一个 Sitecore 解决方案,在各种项目中有一些自定义代码,因此我尝试添加相同的 Glass Mapper 库。因此,我卸载了其他几个项目,梳理了他们的项目文件以查找 Castle.Core、Glass.Mapper.Sc 和 Sitecore Nuget 包的版本,然后将这些 Nuget 包添加到我的项目中。

但是,现在我无法将 Glass.Mapper.Sc 命名空间添加到我的新测试文件中。Glass.Mapper存在,但不是 Glass.Mapper.Sc。较旧的项目是 .NET Framework 4.6.1,Nuget 包版本是相同的。我唯一能看到的不同之处在于旧项目使用"引用",而新项目在依赖项下具有 Nuget 包。我认为较旧的项目只是链接到根包文件夹中解决方案的Nuget包。

我在这个项目中缺少什么?这是因为我在项目文件中将其从 .net 核心转换为框架 4.6.1 吗?我认为 C# 中的新项目有自己的 Nuget 包和程序集,而不是解决方案拥有它们?这是因为新项目在处理参考文献的方式上有所不同吗?我无法更改解决方案或其他项目(因为我们正在尝试修复此遗留代码)。我确信这是我刚刚忽略的愚蠢事情或我错过的基本内容。提前谢谢你。

我也有类似的问题。将包添加到项目后Glass.Mapper.Sc我手动添加了对位于packagesGlass.Mapper.Sc.Core.4.2.1.188lib100文件夹中Glass.Mapper.Sc.dll的引用(通过 NuGet 包管理器安装包后,它不会自动添加到项目中)。这是我.csproj文件的一部分:

<ItemGroup>
...
<!-- This one has been added during the package installation via NuGet -->
<Reference Include="Glass.Mapper, Version=4.2.1.188, Culture=neutral, processorArchitecture=MSIL">
<HintPath>........packagesGlass.Mapper.Sc.Core.4.2.1.188libnet45Glass.Mapper.dll</HintPath>
</Reference>
<!-- This one I've added manually -->
<Reference Include="Glass.Mapper.Sc">
<HintPath>........packagesGlass.Mapper.Sc.Core.4.2.1.188lib100Glass.Mapper.Sc.dll</HintPath>
</Reference>
  • 在我们的解决方案中,我们使用旧的项目文件格式。如果您的.csproj是"Microsoft.NET.Sdk"格式,那么它可能看起来有点不同,但想法是一样的

在这种情况下,我认为缺少对包Glass.Mapper.Sc.XX.MVC的引用.
为了让它在我正在升级的项目中为我工作,我必须有 2 个包引用:MVC 和Glass.Mapper.Sc.Core

最新更新