2016-08-01 71 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 –