构建服务器上 ASP.NET Core 2.0 项目的 Nuget 恢复失败
Nuget restore fails for ASP.NET Core 2.0 project on build server
我正在尝试在 Windows Server 2012R2 上使用 TeamCity 为 .NET Framework 4.6.2(不是 .NET Core)构建一个 ASP.NET Core 2.0 应用程序。
服务器中安装了以下组件:
- 微软 .Net 核心 SDK - 2.0.0.0
- Microsoft .Net 框架(4.5.2、4.6、4.6.2)
- Microsoft 构建工具(2013、2015、2017)
- Windows SDK 10.0
- ...
TeamCity 使用 nuget 版本 4.1 和解决方案文件来恢复依赖包(有关详细信息,请参阅下面的完整日志)。
错误:
[22:57:51]
[22:57:51]Errors in C:\path\to\project\Server\Server.csproj
[22:57:51] Package Microsoft.AspNetCore 2.0.0 is not compatible with net462 (.NETFramework,Version=v4.6.2). Package Microsoft.AspNetCore 2.0.0 supports: netstandard2.0 (.NETStandard,Version=v2.0)
[22:57:51] Package Microsoft.AspNetCore.Mvc 2.0.0 is not compatible with net462 (.NETFramework,Version=v4.6.2). Package Microsoft.AspNetCore.Mvc 2.0.0 supports: netstandard2.0 (.NETStandard,Version=v2.0)
[22:57:51] One or more packages are incompatible with .NETFramework,Version=v4.6.2.
[22:57:51] Package Microsoft.AspNetCore 2.0.0 is not compatible with net462 (.NETFramework,Version=v4.6.2) / win7-x86. Package Microsoft.AspNetCore 2.0.0 supports: netstandard2.0 (.NETStandard,Version=v2.0)
[22:57:51] Package Microsoft.AspNetCore.Mvc 2.0.0 is not compatible with net462 (.NETFramework,Version=v4.6.2) / win7-x86. Package Microsoft.AspNetCore.Mvc 2.0.0 supports: netstandard2.0 (.NETStandard,Version=v2.0)
[22:57:51] One or more packages are incompatible with .NETFramework,Version=v4.6.2 (win7-x86).
[22:57:51]
[22:57:51]Errors in C:\path\to\project\Server\Server.csproj
[22:57:51] Package Microsoft.Extensions.FileProviders.Physical 2.0.0 is not compatible with netcoreapp2.0 (.NETCoreApp,Version=v2.0). Package Microsoft.Extensions.FileProviders.Physical 2.0.0 supports: netstandard2.0 (.NETStandard,Version=v2.0)
[22:57:51] Package Microsoft.VisualStudio.Web.CodeGeneration.Contracts 2.0.0 is not compatible with netcoreapp2.0 (.NETCoreApp,Version=v2.0). Package Microsoft.VisualStudio.Web.CodeGeneration.Contracts 2.0.0 supports: netstandard2.0 (.NETStandard,Version=v2.0)
[22:57:51] One or more packages are incompatible with .NETCoreApp,Version=v2.0.
[22:57:51]Process exited with code 1
问题:
我认为 .NET Framework 4.6.2 实现了 .NET Standard 2.0,因此我不明白为什么这些包不兼容。在我的本地机器上(使用 Visual Studio 2017 Update 3 (15.3))nuget restore 工作正常。
关于如何解决该错误/如何进一步分析问题的任何想法?
项目文件(包含 nuget 包):
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net462</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Folder Include="wwwroot\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore" Version="2.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.0.0" />
<PackageReference Include="Newtonsoft.Json" Version="10.0.3" />
</ItemGroup>
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Server.Common\Server.Common.csproj" />
</ItemGroup>
</Project>
完整日志输出
[Step 1/4] restore: Restoring NuGet packages for Server.sln (24s)
[22:57:27][restore] NuGet command: C:\path\to\buildagent\tools\NuGet.CommandLine.4.1.0\tools\NuGet.exe restore C:\path\to\project\Server.sln
[22:57:27][restore] Starting: C:\path\to\teamcity\temp\agentTmp\custom_script710236021428854.cmd
[22:57:27][restore] in directory: C:\path\to\project
[22:57:28][restore] MSBuild auto-detection: using msbuild version '15.3.409.57025' from 'C:\Program Files (x86)\Microsoft Visual Studio17\BuildTools\MSBuild.0\bin'.
[22:57:31][restore] Alle in "packages.config" aufgef�hrten Pakete sind bereits installiert.
[22:57:31][restore] Restoring packages for C:\path\to\project\Server\Server.csproj...
[22:57:31][restore] Restoring packages for C:\path\to\project\Server\Server.csproj...
[22:57:32][restore] GET https://api.nuget.org/v3-flatcontainer/microsoft.visualstudio.web.codegeneration.tools/index.json
[22:57:32][restore] GET https://api.nuget.org/v3-flatcontainer/microsoft.aspnetcore.mvc/index.json
[22:57:32][restore] GET https://api.nuget.org/v3-flatcontainer/microsoft.aspnetcore/index.json
[...]
[22:57:41][restore] OK https://api.nuget.org/v3-flatcontainer/microsoft.netcore.dotnetapphost/index.json 475ms
[22:57:41][restore] GET https://api.nuget.org/v3-flatcontainer/microsoft.netcore.dotnetapphost/2.0.0/microsoft.netcore.dotnetapphost.2.0.0.nupkg
[22:57:41][restore] OK https://api.nuget.org/v3-flatcontainer/microsoft.netcore.dotnetapphost/2.0.0/microsoft.netcore.dotnetapphost.2.0.0.nupkg 453ms
[22:57:42][restore] Installing System.Xml.XmlSerializer 4.0.11.
[22:57:42][restore] Installing System.Threading.Overlapped 4.0.1.
[22:57:42][restore] Installing System.Security.Principal 4.0.1.
[22:57:42][restore] Installing System.Dynamic.Runtime 4.0.11.
[22:57:42][restore] Installing System.Private.DataContractSerialization 4.1.1.
[22:57:42][restore] Installing Microsoft.Win32.Registry 4.0.0.
[...]
[22:57:48][restore] Installing System.Diagnostics.Contracts 4.0.1.
[22:57:48][restore] Installing System.Threading.Tasks.Dataflow 4.6.0.
[22:57:48][restore] Installing System.IO.Pipes 4.0.0.
[22:57:51][restore] Package Microsoft.Extensions.FileProviders.Physical 2.0.0 is not compatible with netcoreapp2.0 (.NETCoreApp,Version=v2.0). Package Microsoft.Extensions.FileProviders.Physical 2.0.0 supports: netstandard2.0 (.NETStandard,Version=v2.0)
[22:57:51][restore] Package Microsoft.VisualStudio.Web.CodeGeneration.Contracts 2.0.0 is not compatible with netcoreapp2.0 (.NETCoreApp,Version=v2.0). Package Microsoft.VisualStudio.Web.CodeGeneration.Contracts 2.0.0 supports: netstandard2.0 (.NETStandard,Version=v2.0)
[22:57:51][restore] One or more packages are incompatible with .NETCoreApp,Version=v2.0.
[22:57:51][restore] Committing restore...
[22:57:51][restore] Restore failed in 19,33 sec for C:\path\to\project\Server\Server.csproj.
[22:57:51][restore]
[22:57:51][restore] Errors in C:\path\to\project\Server\Server.csproj
[22:57:51][restore] Package Microsoft.AspNetCore 2.0.0 is not compatible with net462 (.NETFramework,Version=v4.6.2). Package Microsoft.AspNetCore 2.0.0 supports: netstandard2.0 (.NETStandard,Version=v2.0)
[22:57:51][restore] Package Microsoft.AspNetCore.Mvc 2.0.0 is not compatible with net462 (.NETFramework,Version=v4.6.2). Package Microsoft.AspNetCore.Mvc 2.0.0 supports: netstandard2.0 (.NETStandard,Version=v2.0)
[22:57:51][restore] One or more packages are incompatible with .NETFramework,Version=v4.6.2.
[22:57:51][restore] Package Microsoft.AspNetCore 2.0.0 is not compatible with net462 (.NETFramework,Version=v4.6.2) / win7-x86. Package Microsoft.AspNetCore 2.0.0 supports: netstandard2.0 (.NETStandard,Version=v2.0)
[22:57:51][restore] Package Microsoft.AspNetCore.Mvc 2.0.0 is not compatible with net462 (.NETFramework,Version=v4.6.2) / win7-x86. Package Microsoft.AspNetCore.Mvc 2.0.0 supports: netstandard2.0 (.NETStandard,Version=v2.0)
[22:57:51][restore]
[22:57:51][restore] One or more packages are incompatible with .NETFramework,Version=v4.6.2 (win7-x86).
[22:57:51][restore] NuGet Config files used:
[22:57:51][restore]
[22:57:51][restore] C:\Windows\system32\config\systemprofile\AppData\Roaming\NuGet\NuGet.Config
[22:57:51][restore] Errors in C:\path\to\project\Server\Server.csproj
[22:57:51][restore]
[22:57:51][restore] Package Microsoft.Extensions.FileProviders.Physical 2.0.0 is not compatible with netcoreapp2.0 (.NETCoreApp,Version=v2.0). Package Microsoft.Extensions.FileProviders.Physical 2.0.0 supports: netstandard2.0 (.NETStandard,Version=v2.0)
[22:57:51][restore] Feeds used:
[22:57:51][restore] https://api.nuget.org/v3/index.json
[22:57:51][restore] Package Microsoft.VisualStudio.Web.CodeGeneration.Contracts 2.0.0 is not compatible with netcoreapp2.0 (.NETCoreApp,Version=v2.0). Package Microsoft.VisualStudio.Web.CodeGeneration.Contracts 2.0.0 supports: netstandard2.0 (.NETStandard,Version=v2.0)
[22:57:51][restore] One or more packages are incompatible with .NETCoreApp,Version=v2.0.
[22:57:51][restore]
[22:57:51][restore] Installed:
[22:57:51][restore] 151 package(s) to C:\path\to\project\Server\Server.csproj
[22:57:51][restore] Process exited with code 1
[22:57:51][restore] Process exited with code 1
[22:57:51][Step 1/4] Step Nuget Restore (NuGet Installer) failed
使用 Nuget 版本 4.3 修复它:)。
我正在尝试在 Windows Server 2012R2 上使用 TeamCity 为 .NET Framework 4.6.2(不是 .NET Core)构建一个 ASP.NET Core 2.0 应用程序。
服务器中安装了以下组件:
- 微软 .Net 核心 SDK - 2.0.0.0
- Microsoft .Net 框架(4.5.2、4.6、4.6.2)
- Microsoft 构建工具(2013、2015、2017)
- Windows SDK 10.0
- ...
TeamCity 使用 nuget 版本 4.1 和解决方案文件来恢复依赖包(有关详细信息,请参阅下面的完整日志)。
错误:
[22:57:51]
[22:57:51]Errors in C:\path\to\project\Server\Server.csproj
[22:57:51] Package Microsoft.AspNetCore 2.0.0 is not compatible with net462 (.NETFramework,Version=v4.6.2). Package Microsoft.AspNetCore 2.0.0 supports: netstandard2.0 (.NETStandard,Version=v2.0)
[22:57:51] Package Microsoft.AspNetCore.Mvc 2.0.0 is not compatible with net462 (.NETFramework,Version=v4.6.2). Package Microsoft.AspNetCore.Mvc 2.0.0 supports: netstandard2.0 (.NETStandard,Version=v2.0)
[22:57:51] One or more packages are incompatible with .NETFramework,Version=v4.6.2.
[22:57:51] Package Microsoft.AspNetCore 2.0.0 is not compatible with net462 (.NETFramework,Version=v4.6.2) / win7-x86. Package Microsoft.AspNetCore 2.0.0 supports: netstandard2.0 (.NETStandard,Version=v2.0)
[22:57:51] Package Microsoft.AspNetCore.Mvc 2.0.0 is not compatible with net462 (.NETFramework,Version=v4.6.2) / win7-x86. Package Microsoft.AspNetCore.Mvc 2.0.0 supports: netstandard2.0 (.NETStandard,Version=v2.0)
[22:57:51] One or more packages are incompatible with .NETFramework,Version=v4.6.2 (win7-x86).
[22:57:51]
[22:57:51]Errors in C:\path\to\project\Server\Server.csproj
[22:57:51] Package Microsoft.Extensions.FileProviders.Physical 2.0.0 is not compatible with netcoreapp2.0 (.NETCoreApp,Version=v2.0). Package Microsoft.Extensions.FileProviders.Physical 2.0.0 supports: netstandard2.0 (.NETStandard,Version=v2.0)
[22:57:51] Package Microsoft.VisualStudio.Web.CodeGeneration.Contracts 2.0.0 is not compatible with netcoreapp2.0 (.NETCoreApp,Version=v2.0). Package Microsoft.VisualStudio.Web.CodeGeneration.Contracts 2.0.0 supports: netstandard2.0 (.NETStandard,Version=v2.0)
[22:57:51] One or more packages are incompatible with .NETCoreApp,Version=v2.0.
[22:57:51]Process exited with code 1
问题:
我认为 .NET Framework 4.6.2 实现了 .NET Standard 2.0,因此我不明白为什么这些包不兼容。在我的本地机器上(使用 Visual Studio 2017 Update 3 (15.3))nuget restore 工作正常。
关于如何解决该错误/如何进一步分析问题的任何想法?
项目文件(包含 nuget 包):
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net462</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Folder Include="wwwroot\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore" Version="2.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.0.0" />
<PackageReference Include="Newtonsoft.Json" Version="10.0.3" />
</ItemGroup>
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Server.Common\Server.Common.csproj" />
</ItemGroup>
</Project>
完整日志输出
[Step 1/4] restore: Restoring NuGet packages for Server.sln (24s)
[22:57:27][restore] NuGet command: C:\path\to\buildagent\tools\NuGet.CommandLine.4.1.0\tools\NuGet.exe restore C:\path\to\project\Server.sln
[22:57:27][restore] Starting: C:\path\to\teamcity\temp\agentTmp\custom_script710236021428854.cmd
[22:57:27][restore] in directory: C:\path\to\project
[22:57:28][restore] MSBuild auto-detection: using msbuild version '15.3.409.57025' from 'C:\Program Files (x86)\Microsoft Visual Studio17\BuildTools\MSBuild.0\bin'.
[22:57:31][restore] Alle in "packages.config" aufgef�hrten Pakete sind bereits installiert.
[22:57:31][restore] Restoring packages for C:\path\to\project\Server\Server.csproj...
[22:57:31][restore] Restoring packages for C:\path\to\project\Server\Server.csproj...
[22:57:32][restore] GET https://api.nuget.org/v3-flatcontainer/microsoft.visualstudio.web.codegeneration.tools/index.json
[22:57:32][restore] GET https://api.nuget.org/v3-flatcontainer/microsoft.aspnetcore.mvc/index.json
[22:57:32][restore] GET https://api.nuget.org/v3-flatcontainer/microsoft.aspnetcore/index.json
[...]
[22:57:41][restore] OK https://api.nuget.org/v3-flatcontainer/microsoft.netcore.dotnetapphost/index.json 475ms
[22:57:41][restore] GET https://api.nuget.org/v3-flatcontainer/microsoft.netcore.dotnetapphost/2.0.0/microsoft.netcore.dotnetapphost.2.0.0.nupkg
[22:57:41][restore] OK https://api.nuget.org/v3-flatcontainer/microsoft.netcore.dotnetapphost/2.0.0/microsoft.netcore.dotnetapphost.2.0.0.nupkg 453ms
[22:57:42][restore] Installing System.Xml.XmlSerializer 4.0.11.
[22:57:42][restore] Installing System.Threading.Overlapped 4.0.1.
[22:57:42][restore] Installing System.Security.Principal 4.0.1.
[22:57:42][restore] Installing System.Dynamic.Runtime 4.0.11.
[22:57:42][restore] Installing System.Private.DataContractSerialization 4.1.1.
[22:57:42][restore] Installing Microsoft.Win32.Registry 4.0.0.
[...]
[22:57:48][restore] Installing System.Diagnostics.Contracts 4.0.1.
[22:57:48][restore] Installing System.Threading.Tasks.Dataflow 4.6.0.
[22:57:48][restore] Installing System.IO.Pipes 4.0.0.
[22:57:51][restore] Package Microsoft.Extensions.FileProviders.Physical 2.0.0 is not compatible with netcoreapp2.0 (.NETCoreApp,Version=v2.0). Package Microsoft.Extensions.FileProviders.Physical 2.0.0 supports: netstandard2.0 (.NETStandard,Version=v2.0)
[22:57:51][restore] Package Microsoft.VisualStudio.Web.CodeGeneration.Contracts 2.0.0 is not compatible with netcoreapp2.0 (.NETCoreApp,Version=v2.0). Package Microsoft.VisualStudio.Web.CodeGeneration.Contracts 2.0.0 supports: netstandard2.0 (.NETStandard,Version=v2.0)
[22:57:51][restore] One or more packages are incompatible with .NETCoreApp,Version=v2.0.
[22:57:51][restore] Committing restore...
[22:57:51][restore] Restore failed in 19,33 sec for C:\path\to\project\Server\Server.csproj.
[22:57:51][restore]
[22:57:51][restore] Errors in C:\path\to\project\Server\Server.csproj
[22:57:51][restore] Package Microsoft.AspNetCore 2.0.0 is not compatible with net462 (.NETFramework,Version=v4.6.2). Package Microsoft.AspNetCore 2.0.0 supports: netstandard2.0 (.NETStandard,Version=v2.0)
[22:57:51][restore] Package Microsoft.AspNetCore.Mvc 2.0.0 is not compatible with net462 (.NETFramework,Version=v4.6.2). Package Microsoft.AspNetCore.Mvc 2.0.0 supports: netstandard2.0 (.NETStandard,Version=v2.0)
[22:57:51][restore] One or more packages are incompatible with .NETFramework,Version=v4.6.2.
[22:57:51][restore] Package Microsoft.AspNetCore 2.0.0 is not compatible with net462 (.NETFramework,Version=v4.6.2) / win7-x86. Package Microsoft.AspNetCore 2.0.0 supports: netstandard2.0 (.NETStandard,Version=v2.0)
[22:57:51][restore] Package Microsoft.AspNetCore.Mvc 2.0.0 is not compatible with net462 (.NETFramework,Version=v4.6.2) / win7-x86. Package Microsoft.AspNetCore.Mvc 2.0.0 supports: netstandard2.0 (.NETStandard,Version=v2.0)
[22:57:51][restore]
[22:57:51][restore] One or more packages are incompatible with .NETFramework,Version=v4.6.2 (win7-x86).
[22:57:51][restore] NuGet Config files used:
[22:57:51][restore]
[22:57:51][restore] C:\Windows\system32\config\systemprofile\AppData\Roaming\NuGet\NuGet.Config
[22:57:51][restore] Errors in C:\path\to\project\Server\Server.csproj
[22:57:51][restore]
[22:57:51][restore] Package Microsoft.Extensions.FileProviders.Physical 2.0.0 is not compatible with netcoreapp2.0 (.NETCoreApp,Version=v2.0). Package Microsoft.Extensions.FileProviders.Physical 2.0.0 supports: netstandard2.0 (.NETStandard,Version=v2.0)
[22:57:51][restore] Feeds used:
[22:57:51][restore] https://api.nuget.org/v3/index.json
[22:57:51][restore] Package Microsoft.VisualStudio.Web.CodeGeneration.Contracts 2.0.0 is not compatible with netcoreapp2.0 (.NETCoreApp,Version=v2.0). Package Microsoft.VisualStudio.Web.CodeGeneration.Contracts 2.0.0 supports: netstandard2.0 (.NETStandard,Version=v2.0)
[22:57:51][restore] One or more packages are incompatible with .NETCoreApp,Version=v2.0.
[22:57:51][restore]
[22:57:51][restore] Installed:
[22:57:51][restore] 151 package(s) to C:\path\to\project\Server\Server.csproj
[22:57:51][restore] Process exited with code 1
[22:57:51][restore] Process exited with code 1
[22:57:51][Step 1/4] Step Nuget Restore (NuGet Installer) failed
使用 Nuget 版本 4.3 修复它:)。