0

我终于在我的构建服务器上安装并安装了VS2015,以避免单独安装必要组件的麻烦,但是现在我在构建时遇到了新的错误。NuGet missing .nuget文件夹我c: Users MyUserName

在我的解决方案运行的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. 

现在,我可以手动在竹用户目录创建一个.nuget文件夹,并帮助(它仍然无法在下包Microsoft.NETCore.Portable.Compatibility) 。

但是我在这里错过了什么?在运行msbuild之前,我运行了nuget restore,它直接在我的项目中使用了我使用的软件包。

Imp.Cook.Models是一款面向Windows 10通用应用程序和.NET 4.6的可移植类库。

构建服务器运行的是Windows Server 2012的

回答

4

我有更多或更少,你这样我就可以分享我在我是如何得到它的工作的见解相同的问题。首先,我们将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运行恢复命令(我建议你从NuGet

我在竹步骤中使用以下命令最新的命令行版本还原包:

NuGet.exe restore "Path_To_Solution" -ConfigFile "path_To_ConfigFile" -NoCache 

之后,你应该看到包下载到C:\用户\竹\ .nuget \ Packages文件夹当您尝试建立在使用的MSBuild下一步解决它应该工作

+0

感谢这么晚回答这个问题。我时不时遇到问题,所以我肯定会放弃它! –

+0

在最新的Visual Studio中开发Xamarin应用程序时,我刚刚经历了整个过程。我读了关于是否应该使用配置文件的矛盾的事情。在微软的doc和nuget.org上包含矛盾的信息!更糟糕的是,我还必须添加第三方nuget repos *和*添加nuget.org下载,它们不会在Visual Studio包管理器中显示出来。只是*现在这里的官方认可的方法是什么? – Marakai

+0

使用nuget.exe正确还原软件包的唯一方法是添加配置文件。否则,NuGet将从它知道的位置获得配置文件,例如$ ENV:APPDATA \ NuGet \ NuGet.Config在PowerShell中。 这一个是相当标准的,并不拥有所有的来源,你可以自己看看它。因此,为了确保NuGet能够找到我们需要的一切,我们添加了我们自己的配置文件。没有真正的“官方”方法,MS大多假设你将使用他们的平台进行构建。 – Jan

1

要安装Microsoft.CSharp,请在程序包管理器控制台中运行以下命令。

然后输入: Install-Package Microsoft.CSharp -Version 4.0.0 https://www.nuget.org/packages/Microsoft.CSharp/4.0.0

+2

你能否解释一下这究竟是如何解决问题的? –

相关问题