Похоже, это вызывает конфликт между различными версиями StackExchange.Redis.

инаю новый проект, используя StackExchange.Redis и .Net Core 2.0. Но я получаю конфликт

Тип «ConnectionMultiplexer» существует в обоих типах: «StackExchange.Redis.StrongName, версия = 1.2.4.0, Culture = нейтральный, PublicKeyToken = c219ff1ca8c2ce46» и «StackExchange.Redis, версия = 1.2.6.0, Culture = нейтральный, PublicKeyToken = null»

Почему это показывает, даже если я не ссылаюсь на StackExchange.Redis.StrongName, и это даже не та же версия сборки?

 Mani Gandham05 сент. 2017 г., 18:08
Двойной вопрос здесь:stackoverflow.com/questions/46029281/...

Ответы на вопрос(4)

Решение Вопроса

чтобы он работал. Я опробовал это решение на двух новых проектах на двух машинах. Не спрашивайте меня, почему это работает.

    <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>
 Nodios17 янв. 2018 г., 14:01
Я не могу заставить ваше решение работать. Это мой конфиг:<ItemGroup> <PackageReference Include="Hangfire.Redis.StackExchange" Version="1.7.2" /> <PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.5" /> <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.0.1" /> <PackageReference Include="NLog.Web.AspNetCore" Version="4.5.0-rc2" /> </ItemGroup> <ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' "> <PackageReference Include="StackExchange.Redis" Version="1.2.6" /> </ItemGroup> Любая идея?
 Lejdholt19 янв. 2018 г., 08:47
Попробуйте переместить <PackageReference Include = "Hangfire.Redis.StackExchange" Version = "1.7.2" /> в ту же группу ItemGroup, что и StackExchange.Redis.StrongName, возможно, это сработает. С этого поста я ничего не работал с Redis, поэтому не могу поклясться, что это сработает.
 IamChandu20 июл. 2018 г., 10:07
Нашли ли вы решение для устранения указанных проблем?
 Shimmy26 нояб. 2017 г., 05:28
Это сработало. Спасибо, что поделился!

Вот.

Добавив это (ниже) к моему csproj:

<Target Name="ChangeAliasesOfStrongNameAssemblies" BeforeTargets="FindReferenceAssembliesForReferences;ResolveReferences">
  <ItemGroup>
    <ReferencePath Condition="'%(FileName)' == 'StackExchange.Redis.StrongName'">
      <Aliases>signed</Aliases>
    </ReferencePath>
  </ItemGroup>
</Target>
 SysDragon13 нояб. 2018 г., 14:09
это сработало для меня, где другие вещи не сделали!

который поставляется с Asp .Net Core 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.

1.2.6 новее и будет использоваться. Проблема в том, что когда вы добавляете Redis.Stackexchange, у вас будет одинаковое пространство имен из двух разных DLL. Компилятор .Net не знает, какой использовать. Если вам нужен 1.2.6, используйте версию StrongName в приложении и никаких проблем ...

 Tomislav Markovski11 июл. 2018 г., 00:22
Это заставило головную боль уйти. Спасибо

Ваш ответ на вопрос