Asp.net core StackExchange.Redis.strong名称已被引用,但未包含在包中
我正在使用StackExchange.Redis和.NETCore2.0启动一个新项目。 但我遇到了一个冲突: “ConnectionMultiplexer”类型存在于“StackExchange.Redis.StrongName,版本=1.2.4.0,区域性=中性,PublicKeyToken=c219ff1ca8c2ce46”和“StackExchange.Redis,版本=1.2.6.0,区域性=中性,PublicKeyToken=null”中Asp.net core StackExchange.Redis.strong名称已被引用,但未包含在包中,asp.net-core,stackexchange.redis,asp.net-core-2.0,Asp.net Core,Stackexchange.redis,Asp.net Core 2.0,我正在使用StackExchange.Redis和.NETCore2.0启动一个新项目。 但我遇到了一个冲突: “ConnectionMultiplexer”类型存在于“StackExchange.Redis.StrongName,版本=1.2.4.0,区域性=中性,PublicKeyToken=c219ff1ca8c2ce46”和“StackExchange.Redis,版本=1.2.6.0,区域性=中性,PublicKeyToken=null”中 为什么这显示我没有引用StackExchan
为什么这显示我没有引用StackExchange.Redis.StrongName,而且它甚至不是同一个程序集版本?我在“StackExchange.Redis”包中添加了一个条件标志,这使它能够工作。我在两台机器上的两个新项目上尝试了这个解决方案。别问我为什么这么做
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Folder Include="wwwroot\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0" />
</ItemGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' ">
<PackageReference Include="StackExchange.Redis" Version="1.2.6" />
</ItemGroup>
</Project>
netcoreapp2.0
Asp.Net Core 2.0附带的Microsoft.Extensions.Caching.Redis 2.0在内部使用StackExchange.Redis.strong名称,版本=1.2.4.0,例如在C:\Program Files\dotnet\sdk\NuGetFallbackFolder\StackExchange.Redis.StrongName\1.2.4\lib\netstandard1.5文件夹中
看来这会导致StackExchange.Redis的不同版本之间发生冲突。您可以在整个应用程序中使用Strongname,1.2.6较新,将被使用。问题是,当您添加Redis.Stackexchange时,您将从两个不同的dll拥有相同的命名空间。Net编译器不知道使用哪一个。如果您需要1.2.6,请在整个应用程序中使用StrongName版本,不再出现问题。我找到了解决方案 通过将以下内容添加到我的csproj中:
<Target Name="ChangeAliasesOfStrongNameAssemblies" BeforeTargets="FindReferenceAssembliesForReferences;ResolveReferences">
<ItemGroup>
<ReferencePath Condition="'%(FileName)' == 'StackExchange.Redis.StrongName'">
<Aliases>signed</Aliases>
</ReferencePath>
</ItemGroup>
</Target>
签署
重复问题:我无法让您的解决方案发挥作用。这是我的配置:
有什么想法吗?尝试移动到与StackExchange.Redis.StrongName相同的项目组中,也许这会起作用。自从这篇文章发表后,我就再也没有和Redis合作过,所以我不敢保证它会成功。你找到解决上述问题的方法了吗?这让我头疼的问题消失了。感谢您将其更改为“StackExchange.Redis”。为我工作!我不断遇到这个问题。很累,很好。谢谢你。工作得很有魅力!