在 TeamCity 中构建特定 .NET Core 项目时引用传递依赖项的问题
Posted
技术标签:
【中文标题】在 TeamCity 中构建特定 .NET Core 项目时引用传递依赖项的问题【英文标题】:Problem referencing transitive dependencies when building a specific .NET Core project in TeamCity 【发布时间】:2020-05-07 16:58:05 【问题描述】:我有一个包含多个项目的解决方案,值得注意的项目是:
ContractProject
DataProject
WebProject
WebProject
是一个.NET Core项目,另外两个是.NET Framework。
这是文件结构,包括csproj
和sln
文件:
DataProject
引用 Dapper
,这是一个 NuGet 包。
尝试在 TeamCity 中运行构建配置时,我收到以下(略微减少,已编辑)错误:
DapperWorklistRepository.cs(4,7): error CS0246: The type or namespace name 'Dapper' could not be found (are you missing a using directive or an assembly reference?) [REDACTED_PATH_TO_DATAPROJECT_CSPROJ_FILE]
......
Build FAILED.
......
Process exited with code 1
Step Build (.NET Core (dotnet)) failed
这是我唯一的构建步骤(.NET Core):
知道我做错了什么吗?我有一种感觉,这可能与 Web 项目无法参考上一级项目有关?我尝试以多种不同的方式设置所需的路径,但均无济于事。
【问题讨论】:
【参考方案1】:我最终弄清楚了这一点,实施了一些解决方案。
问题在于我从 .NET Core 项目中引用 .NET Framework 项目,并尝试一步构建它们。
解决方法需要做两件事:
首先,我必须包含一个 NuGet 安装程序构建步骤。我不知道如何专门针对 .NET Framework 项目(它不支持 .NET Core),所以我基本上复制了解决方案文件,将其重命名为 NetCoreBuildHelper
,并删除了 Web 项目引用。引用保留在原始解决方案中。然后我在 NuGet 安装程序中引用了 new NetCoreBuildHelper
解决方案。
其次,我必须创建一个 .NET Framework MSBuild 步骤,该步骤构建了其他项目(DataProject 和 ContractProject),并引用了 NetCoreBuildHelper
解决方案。
如果我可以改进解决方案,我很乐意听到对此的回应,因为这感觉有点像 hack
【讨论】:
以上是关于在 TeamCity 中构建特定 .NET Core 项目时引用传递依赖项的问题的主要内容,如果未能解决你的问题,请参考以下文章
为啥构建后步骤 (xcopy) 偶尔会在 TeamCity 构建中以代码 2 退出?
CruiseControl [.Net] 与 TeamCity 的持续集成?