【问题标题】:Can't install NuGet package Serilog.Sinks.*无法安装 NuGet 包 Serilog.Sinks。*
【发布时间】:2018-08-29 08:57:13
【问题描述】:

我在旧项目中安装 Serilog.Sinks 包时遇到问题,例如当我尝试安装 Serilog.Sinks.MSSqlServer 时,出现以下错误:

An error occurred while retrieving package metadata for Serilog.2.6.0

我已经安装了包 Serilog.2.6.0 并且过程很顺利,我尝试运行使用这个库的代码并且它工作正常,但是如果我尝试卸载这个包,我会收到错误:

Object reference not set to an instance of an object

因此,我认为我的机器中的 Serilog.2.6.0 可能有问题,因为我无法卸载它或安装它的任何接收器,但我无法找出问题所在。

详情:

  • Visual Studio 2015
  • .NET Framework 4.5 Web 窗体

【问题讨论】:

  • 这个问题有什么更新吗?你解决了这个问题吗?如果没有,请告诉我此问题的最新状态。
  • @LeoLiu-MSFT 我尝试了所有可能,除了将 NuGet 更新到较新版本,仍然面临问题,无论我先安装哪个 Serilog 系列包,我都无法安装其他或卸载已安装的。由于我正在为客户端开发 VDI,我没有升级 NuGet 的权限,所以我提出了请求并等待他们的回复,这就是为什么如果我找到解决方案我还没有回复然而。谢谢!
  • 没关系,如果您对此问题有任何更新,请免费告诉我:)。
  • 对于这种情况,我尝试过的方法是从另一个工作正常的项目中复制引用(.dll 文件)。谢谢您的回答! :)
  • 感谢您在这里分享您的解决方案,您可以将您的评论转换为答案。这可能对阅读此主题的其他社区成员有所帮助

标签: asp.net visual-studio nuget nuget-package


【解决方案1】:

您好,这对我有用 nugget install Serilog.Sinks

【讨论】:

  • 添加版本类型-version 2.6.0
【解决方案2】:

如果您无法通过包管理器控制台或 Nuget 包管理器卸载 nuget,您仍然可以选择卸载它。打开你的 package.config 文件。

看起来像这样:

<packages>
  <package id="Respond" version="1.2.0" targetFramework="net461" />
  <package id="Serilog" version="2.6.0" targetFramework="net461" />
  <package id="WebGrease" version="1.5.2" targetFramework="net461" />
</packages>

在那里,您将找到 Serilog 的 id 以及相关版本的依赖项。删除该行。然后卸载你的项目,编辑它,在那里你会找到SerilogHintPath

看起来像这样:

<Reference Include="Serilog, Version=2.0.0.0, Culture=neutral, PublicKeyToken=24c2f752a8e58a10, processorArchitecture=MSIL">
  <HintPath>..\packages\Serilog.2.6.0\lib\net46\Serilog.dll</HintPath>
  <Private>True</Private>
</Reference>

然后包Serilog可以手动卸载完成。

另外,如果你重新安装那个包卸载它后仍然得到同样的错误,这个问题应该更多地与NuGet有关,而不是包Serilog

在这种情况下,请尝试从工具->扩展和更新中卸载 Visual Studio 2015 的 NuGet 包管理器,然后重新启动 Visual Studio。然后安装最新版本的 NuGet:

https://dist.nuget.org/visualstudio-2015-vsix/latest/NuGet.Tools.vsix

安装完成后,以管理员模式重新打开Visual Studio(右键单击Visual Studio并以管理员模式启动),再次尝试安装该软件包,检查是否正常。

【讨论】:

    【解决方案3】:

    对于这种情况,我尝试过的方法是从另一个工作正常的项目中复制引用(.dll 文件)。谢谢您的回答! :)

    【讨论】:

      【解决方案4】:

      使用以下 package.config 设置对我来说效果很好:

      <?xml version="1.0" encoding="utf-8"?>
      <packages>
        <package id="Serilog" version="2.6.0" targetFramework="net461" />
        <package id="Serilog.Exceptions" version="4.1.0" targetFramework="net461" />
        <package id="Serilog.Sinks.File" version="3.2.0" targetFramework="net461" />
      </packages>
      

      【讨论】:

        猜你喜欢
        • 2019-04-15
        • 2014-02-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-19
        • 2021-07-13
        相关资源
        最近更新 更多