【发布时间】:2016-10-18 13:51:09
【问题描述】:
我有一个包含多个 .Net Core 项目的解决方案,其中一些项目依赖于同一解决方案中的其他项目。整个解决方案托管在本地 TFS 服务器的 Git 存储库中。
我想在 TFS 服务器上设置一个自动构建过程。由于缺乏更好的知识,我使用 Visual Studio 构建模板并将所有设置保留为默认值。当我运行构建过程时,它在“构建解决方案”步骤中失败并显示错误消息
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\DotNet\Microsoft.DotNet.Common.Targets(262,5): 错误:MyProject 项目没有锁定文件。
请运行“dotnet restore”以生成新的锁定文件。 [C:\TFSBuildAgent_work\6\s\MyProject\MyProject.xproj]
所以我继续创建一个 PowerShell 脚本,其中包含我在“构建解决方案”之前但在“Nuget 还原”之后运行的内容 dotnet restore。这也失败了,这次是在“Dotnet restore”步骤中出现错误消息
C:\TFSBuildAgent_work\6\s\MyProject\project.json 中的错误
无法解析“.NETFramework,Version=v4.6.1”的“ProjectDependency (>= 1.0.0)”。
当我在本地计算机上运行 dotnet restore 时,它可以顺利完成。
非常感谢任何帮助或提示!
【问题讨论】:
-
如果您的解决方案中有多个项目,您需要为每个项目运行
dotnet restore。另外,尝试删除本地计算机上的 project.json.lock 文件并重新运行dotnet restore以进行测试。两台机器上是否安装了相同的 .NET 和 .NET Core 框架版本? -
dotnet --info 为两台机器上的 CLI 工具提供
1.0.0-preview2-003131,.Net 框架版本也相同。dotnet restore进入所有子文件夹。我删除了.lock.json文件,dotnet restore在我的本地机器上仍然有效。 -
你可以通过
dotnet --verbose restore...得到更详细的输出 -
我现在帮助自己打包项目依赖项并将其上传到我的内部包服务器。然后
dotnet restore将从服务器中提取它并构建整个项目。不是最好的方法,但至少它是有效的。
标签: tfs continuous-integration .net-core