我终于在我的构建服务器上安装并安装了VS2015,以避免单独安装必要组件的麻烦,但现在我在构建时遇到了新的错误。
在我的解决方案上运行MSBuild会产生以下错误:
"C:\Users\Bamboo\bamboo-home\xml-data\build-dir\IMP-COOK-JOB1\Imp.Cook.Api\Imp.Cook.Api.sln" (default target) (1) ->
"C:\Users\Bamboo\bamboo-home\xml-data\build-dir\IMP-COOK-JOB1\Imp.Cook.Api\Imp.Cook.Api\Imp.Cook.Api.csproj" (default target) (2) ->
"C:\Users\Bamboo\bamboo-home\xml-data\build-dir\IMP-COOK-JOB1\Imp.Cook.Api\Imp.Cook.Models\Imp.Cook.Models.csproj" (default target) (3) ->
(ResolveNuGetPackageAssets target) ->
C:\Program Files (x86)\MSBuild\Microsoft\NuGet\Microsoft.NuGet.targets(89,5):
error : The package Microsoft.CSharp with version 4.0.0 could not be found in
C:\Users\Bamboo\.nuget\packages.
Run a NuGet package restore to download the package.
现在,我可以在Bamboo用户目录中手动创建一个.nuget文件夹,这有帮助(它在下一个包Microsoft.NETCore.Portable.Compatibility
上仍然失败)。
但是我在这里错过了哪一块拼图?我在运行msbuild之前运行nuget restore
,它直接获取我在项目中使用的包。
Imp.Cook.Models
是一个面向Windows 10 Universal应用程序和.NET 4.6的可移植类库。
构建服务器正在运行Windows Server 2012。
答案 0 :(得分:5)
我或多或少地遇到了与您相同的问题,因此我可以分享我对如何使用它的见解。首先,我们将Bamboo作为服务运行(4个代理商)。重要的是要注意,服务需要以用户身份登录,而不是系统帐户才能恢复包(我还不知道原因)。鉴于您有一个用户地图被指示为包的来源,我将假设该部分没问题。
接下来,你需要一个正确配置的nuget.config文件,你将与NuGet.exe一起使用。我看起来像这样。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
<add key="nuget.org" value="https://www.nuget.org/api/v2/" />
</packageSources>
<activePackageSource>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
</activePackageSource>
</configuration>
然后你需要使用NuGet.exe运行restore命令(我建议你从NuGet获取最新的Commandline版本
我在Bamboo步骤中使用以下命令来恢复包:
NuGet.exe restore "Path_To_Solution" -ConfigFile "path_To_ConfigFile" -NoCache
之后,您应该看到正在下载到C:\ Users \ Bamboo \ .nuget \ packages文件夹的软件包。当您尝试使用MsBuild在下一步中构建解决方案时,它应该可以正常工作。
答案 1 :(得分:1)
要安装Microsoft.CSharp,请在程序包管理器控制台中运行以下命令。
然后输入:
Install-Package Microsoft.CSharp -Version 4.0.0
https://www.nuget.org/packages/Microsoft.CSharp/4.0.0
答案 2 :(得分:1)
我还收到“ C:\ Users \ username.nuget \ packages”形式的错误消息。通过首先删除Users \ username.nuget文件夹和解决方案的packages文件夹中的所有文件夹,然后还原nuget软件包,可以解决此问题。