NuGet缺少.nuget文件夹i c:\ Users \ MyUserName

时间:2015-10-15 19:50:00

标签: msbuild nuget portable-class-library nuget-package-restore

我终于在我的构建服务器上安装并安装了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。

3 个答案:

答案 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软件包,可以解决此问题。