.net - 在 Teamcity 上构建混合解决方案(.NET Framework 和 .NET Core)时找不到包

标签 .net visual-studio .net-core teamcity

我有一个解决方案,其中包含针对 .NET Framework 4.6.1 的项目和一个针对 .NET Core 2.0 的项目。 此 .Net Core 项目引用了针对 .NET Framework 4.6.1 的项目。

在本地,使用 Visual Studio 2017 Community,我可以毫无问题地构建此解决方案。

我正在尝试使用以下步骤配置 TeamCity 构建:
1 - 清理包文件夹
2 - 获取包:运行程序类型 = NuGet Installer 和恢复模式 = Restore
3 - 恢复:dotnet 恢复 MyDonetCoreProject.csproj
4 - 构建解决方案:运行程序类型 = Visual Studio (sln) 和 VS 2017

我在编译 .NET Core 项目时遇到编译错误:

C:\Program Files\dotnet\sdk\2.1.301\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(198, 5): Package Microsoft.AspNetCore, version 2.0.3 was not found. It might have been deleted since NuGet restore. Otherwise, NuGet restore might have only partially completed, which might have been due to maximum path length restrictions.

我检查了 TeamCity 服务器上的路径 C:\Users\MyUser\.nuget\packages\microsoft.aspnetcore,并且有一个文件夹 2.0.3

我的解决方案中没有对此包的任何引用。这个包的目的是什么?它在哪里查找?

最佳答案

为什么不使用 .NetCore CLI 命令来构建 .NetCore 应用程序或库。但同时,您应该在构建代理上同时拥有.NetCore 2.0和.NET Framework 4.6.1。 我对 TeamCity CI 不熟悉,你可以试试这个,

而不是步骤<< 4 - 构建解决方案:运行程序类型 = Visual Studio (sln) 和 VS 2017 >>

dotnet 构建 [.NetCore 的 .csproj]

https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-build?tabs=netcore2x

您可以考虑使用 .net 标准(作为目标),而不是使用特定框架版本的目标(如果适用)。

关于.net - 在 Teamcity 上构建混合解决方案(.NET Framework 和 .NET Core)时找不到包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51263111/

相关文章:

c# - FileStream 错误 - 进程无法访问文件...被另一个进程使用

c# - 如果引用特定库,如何标记要编译的 C# 代码的一部分;如果没有引用特定库,则忽略它?

c# - 如何使用 ASP.NET Core 从 DbContext 中的 JWT 获取用户名?

c# - TargetFramework 与 TargetFrameworks(复数)

asp.net-core - NuGet.targets 错误 : '.' , 十六进制值 0x00,是升级到 .Net Core 2.1.1 后的无效字符

.net - 使用 "right".NET Framework 版本

c# - 列表中的 OutOfMemoryException

c# - 如何在 .NET 中处理 HTTP 连接?

flutter - 任务 ':app:processDebugResources' 执行失败

c# - ReSharper 表示 Console.ReadLine() 返回空值