2015-11-02 33 views
1

我正在使用Bamboo和MSBuild并启用恢复软件包。 enter image description hereNuget Packages使用MSBuild在Bamboo中恢复问题

当我运行它时,它不会恢复所有pacakges,当我看到日志时,它还原一些pacakges,但并不是所有项目pacakges在解决方案...有什么我需要修复MS生成脚本?

完全错误日志: http://justpaste.it/oq2p

错误日志:

02-Nov-2015 10:08:55 Infrastructure\InMemoryMultipartStreamProvider.cs(14,52): error CS0246: The type or namespace name 'MultipartStreamProvider' could not be found (are you missing a using directive or an assembly reference?) [C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\SmartDesk.BusinessObjects\SmartDesk360.BusinessObjects.csproj] 
02-Nov-2015 10:08:55 Infrastructure\InMemoryMultipartStreamProvider.cs(30,32): error CS0115: 'InMemoryMultipartStreamProvider.GetStream(HttpContent, HttpContentHeaders)': no suitable method found to override [C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\SmartDesk.BusinessObjects\SmartDesk360.BusinessObjects.csproj] 
02-Nov-2015 10:08:55 Infrastructure\InMemoryMultipartStreamProvider.cs(41,36): error CS0115: 'InMemoryMultipartStreamProvider.ExecutePostProcessingAsync()': no suitable method found to override [C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\SmartDesk.BusinessObjects\SmartDesk360.BusinessObjects.csproj] 
02-Nov-2015 10:08:55 Done Building Project "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\SmartDesk.BusinessObjects\SmartDesk360.BusinessObjects.csproj" (default targets) -- FAILED. 
02-Nov-2015 10:08:55 Project "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\API.SmartDesk360.com\SmartDesk360.API.csproj" (2) is building "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\SmartDesk360.Core\SmartDesk360.Core.csproj" (6) on node 1 (default targets). 
02-Nov-2015 10:08:55 RestorePackages: 
02-Nov-2015 10:08:55  "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\.nuget\NuGet.exe" install "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\SmartDesk360.Core\packages.config" -source "" -NonInteractive -RequireConsent -solutionDir "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\ " 
02-Nov-2015 10:08:55  Restoring NuGet packages... 
02-Nov-2015 10:08:55  To prevent NuGet from downloading packages during build, open the Visual Studio Options dialog, click on the Package Manager node and uncheck 'Allow NuGet to download missing packages'. 
02-Nov-2015 10:08:55  All packages listed in packages.config are already installed. 
02-Nov-2015 10:08:55 Project "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\SmartDesk360.Core\SmartDesk360.Core.csproj" (6) is building "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\SmartDesk360.DataLayer\SmartDesk360.DataLayer.csproj" (7) on node 1 (default targets). 
02-Nov-2015 10:08:55 RestorePackages: 
02-Nov-2015 10:08:55  "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\.nuget\NuGet.exe" install "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\SmartDesk360.DataLayer\packages.config" -source "" -NonInteractive -RequireConsent -solutionDir "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\ " 
02-Nov-2015 10:08:55  Restoring NuGet packages... 
02-Nov-2015 10:08:55  To prevent NuGet from downloading packages during build, open the Visual Studio Options dialog, click on the Package Manager node and uncheck 'Allow NuGet to download missing packages'. 
02-Nov-2015 10:08:55  All packages listed in packages.config are already installed. 
02-Nov-2015 10:08:55 Done Building Project "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\SmartDesk360.DataLayer\SmartDesk360.DataLayer.csproj" (default targets) -- FAILED. 
02-Nov-2015 10:08:55 Project "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\SmartDesk360.Core\SmartDesk360.Core.csproj" (6) is building "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\SmartDesk360.FileManager\SmartDesk360.FileManager.csproj" (8) on node 1 (default targets). 
02-Nov-2015 10:08:55 RestorePackages: 
02-Nov-2015 10:08:55  "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\.nuget\NuGet.exe" install "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\SmartDesk360.FileManager\packages.config" -source "" -NonInteractive -RequireConsent -solutionDir "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\ " 
02-Nov-2015 10:08:56  Restoring NuGet packages... 
02-Nov-2015 10:08:56  To prevent NuGet from downloading packages during build, open the Visual Studio Options dialog, click on the Package Manager node and uncheck 'Allow NuGet to download missing packages'. 
02-Nov-2015 10:08:56  All packages listed in packages.config are already installed. 
02-Nov-2015 10:08:56 Done Building Project "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\SmartDesk360.FileManager\SmartDesk360.FileManager.csproj" (default targets) -- FAILED. 
02-Nov-2015 10:08:56 Project "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\SmartDesk360.Core\SmartDesk360.Core.csproj" (6) is building "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\SmartDesk360.Mailer\SmartDesk360.Mailer.csproj" (9) on node 1 (default targets). 
02-Nov-2015 10:08:56 GenerateTargetFrameworkMonikerAttribute: 
02-Nov-2015 10:08:56 Skipping target "GenerateTargetFrameworkMonikerAttribute" because all output files are up-to-date with respect to the input files. 
02-Nov-2015 10:08:56 CoreCompile: 
02-Nov-2015 10:08:56 Skipping target "CoreCompile" because all output files are up-to-date with respect to the input files. 
02-Nov-2015 10:08:56 CopyFilesToOutputDirectory: 
02-Nov-2015 10:08:56  SmartDesk360.Mailer -> C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\SmartDesk360.Mailer\bin\Debug\SmartDesk360.Mailer.dll 
02-Nov-2015 10:08:56 Done Building Project "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\SmartDesk360.Mailer\SmartDesk360.Mailer.csproj" (default targets). 
02-Nov-2015 10:08:56 Done Building Project "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\SmartDesk360.Core\SmartDesk360.Core.csproj" (default targets) -- FAILED. 
02-Nov-2015 10:08:56 Done Building Project "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\API.SmartDesk360.com\SmartDesk360.API.csproj" (default targets) -- FAILED. 
02-Nov-2015 10:08:56 Project "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\API.SmartDesk360.com.sln" (1) is building "C:\Users\Administrator\bamboo-home\xml-data\build-dir\API-STAG-JOB1\Tests.SmartDesk360.com\Tests.SmartDesk360.com.csproj" (10) on node 1 (default targets). 

回答

2

因此,如果您repositories.config文件中包含这将解决问题像这样的东西S:

<?xml version="1.0" encoding="utf-8"?> 
<repositories> 
    <repository path=".\MyCsProj\packages.config" /> 
</repositories> 

而且你MyCsProj \ packages.config文件看起来像这样:

<?xml version="1.0" encoding="utf-8"?> 
<packages> 
    <package id="SuperCoolPackage" version="4.3.2.1" targetFramework="net452" /> 
</packages> 

的NuGet会看起来像一个目录:

.\packages\SuperCoolPackage.4.3.2.1\ 

不管与否在“。\ packages \ SuperCoolPackage.4.3.2.1 \”目录中有实际的二进制文件,Nuget〜认为〜/假定它们在文件夹的名称中。

所以有时候,当文件夹“。\ packages \ SuperCoolPackage.4.3.2.1 \”存在时,它可能没有任何子文件,它们是您需要的实际二进制文件。

您需要重新阅读有关在源代码管理中存储文件的最新建议。

https://docs.nuget.org/consume/package-restore

促进更清洁的开发环境,同时也降低了 库的大小,的NuGet提供包还原功能项目建成之前,将 安装所有引用的包,从而 确保所有相关性可用于没有 的项目,要求将它们存储在源代码管理中。

所以这里是你想要的源代码管理。

。\包\ repositories.config

,并在此无子文件夹 “\ \包”

然后你会遇到

在构建过程中nuget.exe恢复MySolution.sln。

由于此“。\ packages \”下没有子文件夹,因此会下载它们。(和本地缓存他们,所以仅在第一次真的很痛)

最大的跳变点(恕我直言)是有

.\packages\SuperCoolPackage.4.3.2.1\ 

在源代码控制。根据上面提到的nuget url,我建议不要在源代码管理中使用这些子文件夹。

如果您有。\ packages \ SuperCoolPackage.4.3.2.1 \ ...或者从源代码管理中删除它..........或者编写msbuild代码以在运行nuget.exe之前删除所有子文件夹恢复命令。

0
"C:\Program Files (x86)\NuGet\nuget.exe" restore ${bamboo.build.working.directory}\MySolution.sln" 

我希望

enter link description here