[英]Azure Redis StackExchange.Redis ConnectionMultiplexer in ASP.net MVC
[英]VS.NET 2017 forces using StackExchange.Redis 1.2.4.0 in ASP.NET 2.0 Core app
我正在使用Visual Studio 2017.我剛剛創建了一個新的ASP.NET Core 2.0項目。 我試圖使用NuGet引入最新的StackExchange.Redis 1.2.6(截至9/3/2017)。
但是,一旦我這樣做,Visual Studio就會抱怨我的一個RedisResult變量中存在沖突的引用。 它說
錯誤CS0433類型'RedisResult'存在於'StackExchange.Redis.StrongName,Version = 1.2.4.0,Culture = neutral,PublicKeyToken = c219ff1ca8c2ce46'和'StackExchange.Redis,Version = 1.2.6.0,Culture = neutral,PublicKeyToken = null '服務器C:\\ git \\ Splash \\ Server \\ BackPlaneConnection \\ Channel.cs 19有效
然后,我發現我不需要手動添加任何NuGet包,以便在我的ASP.NET Core 2.0應用程序中使用StackExchange.Redis。 實際上,如果我手動添加對不同版本的StackExchange.Redis的引用,則會導致上面顯示的解決沖突。
檢查構建輸出。 DLL實際上來自C:\\ Program Files \\ dotnet \\ sdk \\ NuGetFallbackFolder \\ stackexchange.redis.strongname
我嘗試刪除stackexchange.redis.strongname但它仍然以某種方式自動下載到我的個人nuget文件夾。
幾乎感覺ASP.NET Core 2.0內部需要StackExchange.Redis 1.2.4.0,但這對我來說真的沒有意義。
使用ASP.NET Core 1.1時,我沒有遇到同樣的問題。 有沒有辦法讓我的ASP.NET Core 2.0使用NuGet的最新StackExchange.Redis?
找到原因。 這是因為默認情況下VS.NET 2017啟用了“允許NuGet下載丟失的包”。 構建屏幕也提到了這一點。
還原NuGet包...要防止NuGet在構建期間還原包,請打開“Visual Studio選項”對話框,單擊“包管理器”節點,然后取消選中“允許NuGet在構建期間下載缺少的包”。
在我的情況下,為了完全避免這個問題,我需要執行以下步驟來解決我的問題。
我在“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>
我剛剛在一個包含許多項目的解決方案文件中遇到了類似的問題。 添加了一個nuget包,其中包含對已包含在其中一個項目中的包的* .StrongName.dll版本的依賴性。 由於它是一個依賴項,因此即使它出現在對象瀏覽器中,跟蹤StrongName版本被引用的位置也非常困難。 我終於能夠使用PowerShell控制台跟蹤它,以挖掘所有項目中的所有nuget項目依賴項,以找到重復的來源:
dir -Recurse **\project.assets.json | Select-String -pattern "{{dll name}}"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.