2016-08-01 87 views
11

我试图安装serilog和我收到提示“Serilog”已经有“Microsoft.CSharp”

PM定义的依赖 - >安装,包装Serilog
安装,包装:“Serilog”已为'Microsoft.CSharp'定义了一个
依赖项。在线:1 char:1
+安装包装Serilog
+ ~~~~~~~~~~~~~~~~~~~~~~~~ [安装封装],出现InvalidOperationException
+ FullyQualifiedErrorId:NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPackageCommand

Microsoft.CSharp在我的项目中已经引用

+8

更新的NuGet扩展在Visual Studio –

+1

感谢那些曾 – LP13

+0

似乎需要对已添加了.NET核心的兼容性包。不知道为什么。 –

回答

8

正如@Tieson T.说,更新“NuGet包管理器视觉Studio“从Visual Studio窗口>工具>扩展s和更新>单击更新选项卡。选择Nuget插件并更新。然后在安装完成后重新启动Visual Studio。我试过(Windows 8.1 64位& Visual Studio 2013旗舰版),它的工作原理。

+0

注意自己:记得进入TeamCity并执行相同的操作:https://confluence.jetbrains.com/display/TCD9/NuGet –

0

要添加到此。我有类似的问题,但问题是由于我们的构建服务器基于TFS 2012并使用旧版本的MSBuild(我们无法在近期更新)。一切都在本地构建并运行良好,但是当构建服务器试图运行时,我们得到了同样的错误。

我发现的解决方法是进入解决方案的packages文件夹,找到有问题的包(在我的情况下是Serilog.2.3.0和我已经安装的相关Sink包)。打开“lib”文件夹,你应该看到一些与各种.Net框架相关的文件夹。删除与.Net Core版本对应的netstandard文件夹。

这个缺点是你必须检查你修改的文件夹,所以MSBuild不会尝试恢复它们。

0

请做下面的2个步骤,它为我工作或TeamCity的/詹金斯

  1. 如果你还在使用的NuGet的CommandLine 2.8,请尝试升级到3.5。

    2.1更新的NuGet规格文件:

  2. 如果使用私人的NuGet服务器,请执行以下步骤更新Serilog.2.3.0.nupkg 删除 ... .. 。

    2.2删除该文件夹的lib/netstandard1.0和lib/netstandard1.0

    2.3然后重新部署Serilog.2.3.0.nupkg到您的私人的NuGet服务器

+0

删除targetFramework =“。NETStandard1.0”和targetFramework =“。NETStandard1组。 3“用于更新Serilog.nuspec –