我有一个解决方案,其中包含针对.NET Framework 4.6.1的项目和针对.NET Core 2.0的单个项目。 该.Net Core项目引用了针对.NET Framework 4.6.1的项目。
在本地,使用Visual Studio 2017社区,我可以毫无问题地构建此解决方案。
我正在尝试使用以下步骤配置TeamCity构建:
1-清洁软件包文件夹
2-获取软件包:运行程序类型= NuGet安装程序,还原模式=恢复
3-还原:dotnet还原MyDonetCoreProject.csproj
4-构建解决方案:运行程序类型= VS 2017的Visual Studio(sln)
编译.NET Core项目时出现编译错误:
C:\ Program Files \ dotnet \ sdk \ 2.1.301 \ Sdks \ Microsoft.NET.Sdk \ targets \ Microsoft.PackageDependencyResolution.targets(198,5):未找到包Microsoft.AspNetCore 2.0.3版。自从NuGet恢复以来,它可能已被删除。否则,NuGet还原可能仅部分完成,这可能是由于最大路径长度限制所致。
我在TeamCity服务器上检查了路径C:\Users\MyUser\.nuget\packages\microsoft.aspnetcore
,并且有一个文件夹2.0.3
。
我的解决方案中没有与此包有关的任何参考。该包装的外观和外观如何?
答案 0 :(得分:0)
为什么不使用.NetCore CLI命令来构建.NetCore应用程序或库。但是同时,在构建代理程序上应该同时具有.NetCore 2.0和.NET Framework 4.6.1。 我对TeamCity CI不熟悉,可以尝试一下,
代替步骤<< 4-构建解决方案:运行程序类型= VS 2017的Visual Studio(sln)>>
dotnet构建[.NetCore的.csproj]
https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-build?tabs=netcore2x
您可以考虑使用.net标准(作为目标),而不是使用适用于特定框架版本的标签。
答案 1 :(得分:0)
我通过以下构建过程设法解决了此问题:
1-还原nugets::使用还原模式“还原(需要NuGet 2.7+),并在“软件包源”字段中指定所有软件包源(即使您的解决方案中有NuGet.config文件)并将“更新模式”设置为“通过解决方案文件更新”
2-构建解决方案:将“运行器类型”设置为“ .NET CLI(dotnet)”,将“命令”设置为“构建”
我不记得为什么必须删除清洁步骤,但这对我有用。
答案 2 :(得分:0)