2017-09-05 38 views
9

我開始使用StackExchange.Redis和.Net Core 2.0的新項目。 但我得到一個矛盾:StackExchange.Redis.StrongName被引用但不包括在包中

類型 'ConnectionMultiplexer' 存在於兩個 'StackExchange.Redis.StrongName,版本= 1.2.4.0,文化=中性公鑰= c219ff1ca8c2ce46' 和「StackExchange.Redis,版本爲1.2。 6.0,Culture = neutral,PublicKeyToken = null'

爲什麼即使你沒有引用StackExchange.Redis.StrongName,它甚至不顯示相同的程序集版本?

+1

重複的問題:https://stackoverflow.com/questions/46029281/vs-net-2017-forces-using-stackexchange-redis- 1-2-4-0-asp-net-2-0-core-app –

回答

4

我向「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> 
+0

工作正常。感謝分享! – Shimmy

+0

我無法解決您的問題。這是我的配置: ' <的ItemGroup條件= 「 '$(TargetFramework)' == 'netstandard2.0' 」> ' 任何想法? – Nodios

+0

嘗試在與StackExchange.Redis.StrongName相同的ItemGroup內移動,也許這將起作用。自從這篇文章以來我沒有與Redis合作過,所以不能發誓它會工作。 – Lejdholt

0

Microsoft.Extensions.Caching.Redis 2.0附帶的ASP.NET核2.0內部使用StackExchange.Redis.StrongName,版本= 1.2.4.0,有例如在C:\ Program Files文件\ DOTNET \ sdk \ NuGetFallbackFolder \ stackexchange.redis.strongname \ 1.2.4 \ lib \ netstandard1.5文件夾。

所以看起來這會導致不同版本的StackExchange.Redis之間的衝突。

2

在整個應用程序中使用Strongname是可能的,1.2.6是更新的並且將被使用。問題是,當您添加Redis.Stackexchange時,您將擁有來自兩個不同dll的相同命名空間。 .Net編譯器不知道使用哪一個。如果您需要1.2.6,請在整個應用程序中使用StrongName版本,並且不會出現更多問題....

0

我找到了我的解決方案here

通過添加這個(下)我的csproj:

<Target Name="ChangeAliasesOfStrongNameAssemblies" BeforeTargets="FindReferenceAssembliesForReferences;ResolveReferences"> 
    <ItemGroup> 
    <ReferencePath Condition="'%(FileName)' == 'StackExchange.Redis.StrongName'"> 
     <Aliases>signed</Aliases> 
    </ReferencePath> 
    </ItemGroup> 
</Target> 
這裏
相關問題