gpt4 book ai didi

c# - VS.NET 2017 强制在 ASP.NET 2.0 Core 应用程序中使用 StackExchange.Redis 1.2.4.0

转载 作者:行者123 更新时间:2023-11-30 17:32:44 29 4
gpt4 key购买 nike

我正在使用 Visual Studio 2017。我刚刚创建了一个新的 ASP.NET Core 2.0 项目。我试图使用 NuGet 引入最新的 StackExchange.Redis 1.2.6(截至 2017 年 9 月 3 日)。

但是,一旦我这样做,Visual Studio 就会提示我的 RedisResult 变量之一存在引用冲突。它说

Error CS0433 The type 'RedisResult' exists in both 'StackExchange.Redis.StrongName, Version=1.2.4.0, Culture=neutral, PublicKeyToken=c219ff1ca8c2ce46' and 'StackExchange.Redis, Version=1.2.6.0, Culture=neutral, PublicKeyToken=null' Server C:\git\Splash\Server\BackPlaneConnection\Channel.cs 19 Active

然后,我发现我真的不需要手动添加任何 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 下载丢失的包”。构建屏幕也提到了这一点。

Restoring NuGet packages... To prevent NuGet from restoring packages during build, open the Visual Studio Options dialog, click on the Package Manager node and uncheck 'Allow NuGet to download missing packages during build.'

在我的例子中,为了完全避免这个问题,我需要执行以下步骤来解决我的问题。

  1. 转到 Visual Studio 选项对话框。
  2. 取消选中“允许 NuGet 下载丢失的包”以避免将来自动下载 NuGet 包
  3. 打开 NuGet Manager 添加最新的 StackExchange.Redis 包
  4. 单击“清除所有 NuGet 缓存”以清理旧的 NuGet 缓存

关于c# - VS.NET 2017 强制在 ASP.NET 2.0 Core 应用程序中使用 StackExchange.Redis 1.2.4.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46029281/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com