簡體   English   中英

MSBuild忽略已安裝的nuget(NuGet 3),失敗

[英]MSBuild ignores installed nugets (NuGet 3), fails

我有一個項目,在project.json文件中列出了一個NuGet依賴項。 Build在VS2015內運行良好,在與VS2015相同的計算機上通過MSBuild也可以正常運行。 (甚至在另一個從遠程git repo克隆的完全不相關的目錄中。)

但是,在另一台計算機(MSBuild版本相同)上,它會失敗並出現參考錯誤。 我仔細閱讀了輸出,發現MSBuild在兩個實例中沒有啟動相同的csc.exe命令:

工作實例: C:\\Program Files (x86)\\MSBuild\\14.0\\bin\\csc.exe /noconfig /nowarn:1701,1702 /nostdlib+ /errorreport:prompt /warn:4 /define:DEBUG;TRACE /highentropyva+ /reference:C:\\Users\\tm\\.nuget\\packages\\log4net\\2.0.5\\lib\\net45-full\\log4net.dll/reference:"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.5\\Microsoft.CSharp.dll" /reference:"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.5\\mscorlib.dll" /reference:"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.5\\System.Core.dll" /reference:"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.5\\System.Data.DataSetExtensions.dll" /reference:"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.5\\System.Data.dll" /reference:"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.5\\System.dll" /reference:"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.5\\System.Xml.dll" /reference:"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.5\\System.Xml.Linq.dll" /debug+ /debug:full /filealign:512 /optimize- /out:obj\\Debug\\ImportCommon.dll /ruleset:"C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\Team Tools\\Static Analysis Tools\\\\Rule Sets\\MinimumRecommendedRules.ruleset" /subsystemversion:6.00 /target:library /utf8output EcritureCSV.cs LectureCSV.cs Properties\\AssemblyInfo.cs "C:\\Users\\tm\\AppData\\Local\\Temp\\.NETFramework,Version=v4.5.AssemblyAttributes.cs" C:\\Program Files (x86)\\MSBuild\\14.0\\bin\\csc.exe /noconfig /nowarn:1701,1702 /nostdlib+ /errorreport:prompt /warn:4 /define:DEBUG;TRACE /highentropyva+ /reference:C:\\Users\\tm\\.nuget\\packages\\log4net\\2.0.5\\lib\\net45-full\\log4net.dll/reference:"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.5\\Microsoft.CSharp.dll" /reference:"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.5\\mscorlib.dll" /reference:"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.5\\System.Core.dll" /reference:"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.5\\System.Data.DataSetExtensions.dll" /reference:"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.5\\System.Data.dll" /reference:"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.5\\System.dll" /reference:"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.5\\System.Xml.dll" /reference:"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.5\\System.Xml.Linq.dll" /debug+ /debug:full /filealign:512 /optimize- /out:obj\\Debug\\ImportCommon.dll /ruleset:"C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\Team Tools\\Static Analysis Tools\\\\Rule Sets\\MinimumRecommendedRules.ruleset" /subsystemversion:6.00 /target:library /utf8output EcritureCSV.cs LectureCSV.cs Properties\\AssemblyInfo.cs "C:\\Users\\tm\\AppData\\Local\\Temp\\.NETFramework,Version=v4.5.AssemblyAttributes.cs"

失敗的實例: C:\\Program Files (x86)\\MSBuild\\14.0\\bin\\csc.exe /noconfig /nowarn:1701,1702 /nostdlib+ /errorreport:prompt /warn:4 /define:DEBUG;TRACE /highentropyva+ /reference:"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.5\\Microsoft.CSharp.dll" /reference:"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.5\\mscorlib.dll" /reference:"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.5\\System.Core.dll" /reference:"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.5\\System.Data.DataSetExtensions.dll" /reference:"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.5\\System.Data.dll" /reference:"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.5\\System.dll" /reference:"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.5\\System.Xml.dll" /reference:"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.5\\System.Xml.Linq.dll" /debug+ /debug:full /filealign:512 /optimize- /out:obj\\Debug\\ImportCommon.dll /subsystemversion:6.00 /target:library /utf8output EcritureCSV.cs LectureCSV.cs Properties\\AssemblyInfo.cs "C:\\Users\\maurin\\AppData\\Local\\Temp\\4\\.NETFramework,Version=v4.5.AssemblyAttributes.cs" C:\\Program Files (x86)\\MSBuild\\14.0\\bin\\csc.exe /noconfig /nowarn:1701,1702 /nostdlib+ /errorreport:prompt /warn:4 /define:DEBUG;TRACE /highentropyva+ /reference:"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.5\\Microsoft.CSharp.dll" /reference:"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.5\\mscorlib.dll" /reference:"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.5\\System.Core.dll" /reference:"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.5\\System.Data.DataSetExtensions.dll" /reference:"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.5\\System.Data.dll" /reference:"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.5\\System.dll" /reference:"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.5\\System.Xml.dll" /reference:"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.5\\System.Xml.Linq.dll" /debug+ /debug:full /filealign:512 /optimize- /out:obj\\Debug\\ImportCommon.dll /subsystemversion:6.00 /target:library /utf8output EcritureCSV.cs LectureCSV.cs Properties\\AssemblyInfo.cs "C:\\Users\\maurin\\AppData\\Local\\Temp\\4\\.NETFramework,Version=v4.5.AssemblyAttributes.cs"

在第二個實例中,MSBuild不將參數:/ /reference:C:\\Users\\tm\\.nuget\\packages\\log4net\\2.0.5\\lib\\net45-full\\log4net.dll :C: /reference:C:\\Users\\tm\\.nuget\\packages\\log4net\\2.0.5\\lib\\net45-full\\log4net.dll - csc.exe /reference:C:\\Users\\tm\\.nuget\\packages\\log4net\\2.0.5\\lib\\net45-full\\log4net.dll傳遞給csc.exe而文件存在因為先前已下載該文件並進行了nuget restore

我不知道為什么MSBuild不添加此參數。 任何見識將不勝感激。

msbuild不會還原nuget程序包。 您必須運行nuget.exe restore

Visual Studio會處理此問題,因此在Visual Studio計算機上進行構建將可與msbuild一起使用,因為使用VS進行的構建已將其還原。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM