tfs - Dotnet 命令在以下项目中因非零退出代码而失败:
问题描述
我正在尝试在 TFS 上构建一个 API,其中包含 dotnet.core3.1 中的多个项目当我在 TFS 上运行 dotnet build Api.sln 命令时,结果如下
[错误] Dotnet 命令在以下项目中以非零退出代码失败:D:\TFS\Agent01\_work\18\s\PMTApi.sln
语境:
TFS 2017
Dotnet Core 3.1 项目
TFS git 上的源代码管理
代理无法连接到外部(互联网)
依赖项导入是从私人服务器完成的,这要归功于 NuGet.Config 文件设置为重定向依赖项导入,而不是在https://api.nuget.org/v3/index.json服务器上,而是在我们私人公司的服务器上.
解释:
在 TFS git 源代码管理器上,PMTApi.sln 项目包含 7 个 .csproj 文件
但是在 PMTApi.sln 文件中只有 4 个 .csproj 被包含在内
本地结果:
是好的 dotnet build 完成了 5 个成功的项目。
TFS 上的结果:
不好。
[错误] Dotnet 命令在以下项目中以非零退出代码失败:D:\TFS\Agent01\_work\18\s\PMTApi.sln
观察:
我的印象是 TFS 基于 TFS git 源管理器中的所有 .csproj 文件,而不是来自 PMTApi.sln 结论 PMTApi.sln 中未引用的项目仍然尝试恢复导致顶部错误的依赖项。
测试:
我试图像这样在我的 NuGet.Config 文件中排除这 3 个 .csproj 项目,但它不起作用
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="XXX NuGet Packages" value="http://privateServer/nuget" />
</packageSources>
<ItemGroup>
<ProjectReference Exclude="..\folderName1\projectName1.csproj" />
<ProjectReference Exclude="..\folderName2\projectName2.csproj" />
<ProjectReference Exclude="..\folderName3\projectName3.csproj" />
</ItemGroup>
</configuration>
您对成功的 dotnet 构建任务有什么想法吗?
那个工程:
TFS 返回:
本地配置:
1-在这里你必须右键单击解决方案
2-管理包 Nuget 以获取解决方案
3-添加您的私人服务器的网址
4-并取消选中 api.NuGet.org 的服务器
就我而言,我还取消选中了 Visual Studio 软件包
解决方案
您应该指定csproj
要在Project(s)
参数中使用的文件,而不是sln
文件。检查此参数的描述:
要使用的 csproj 文件的路径。您可以使用通配符(例如,**/*.csproj 用于所有子文件夹中的所有 .csproj 文件)。此字段遵循 glob 模式,并且始终针对存储库的根目录运行,而与工作目录无关。
推荐阅读
- apache-kafka - 使用 kafka 向另一个微服务发送消息
- ios - 如何在 xib 文件中为约束设置常量
- vue.js - Quasar 带焦点的 clearble q-input 问题
- python - 未将完整 URL 正确解析为电报机器人
- java - PostgreSql+Spring:尝试使用 SQL 文件初始化数据库但由于用户身份验证而失败
- ruby-on-rails - 复制空目录的雷神宝石不起作用
- python - Python 字符串替换不适用于特定前缀?
- python - 如何分析 python 性能或每个语句?
- java - 如何找到相同角色的用户
- huawei-mobile-services - 华为移动服务推送消息无法到达中国用户