TFS MSBuild 不为解决方案中的网站恢复 nugets

Posted

技术标签:

【中文标题】TFS MSBuild 不为解决方案中的网站恢复 nugets【英文标题】:TFS MSBuild not restoring nugets for websites in solution 【发布时间】:2019-06-01 21:33:45 【问题描述】:

我有一个相当大的解决方案,大约有 90 个项目,在 Visual Studio 2015 中构建得很好,但是当我尝试在 TFS 中执行 CI 时,看起来 nuget 还原忽略了所有 网站在我的解决方案中,因此没有加载它的包并且无法构建。

如果它是 .csproj,则该项目的 nugets 恢复得很好 如果它是一个网站,它似乎会忽略它的 packages.config

附言 我更喜欢这样的解决方案,我不需要签入有关这些项目的任何额外内容,例如'将 dll 添加到 bin 文件夹中以签入 .refresh 文件 [...]s em>',因此 CI 过程尽可能自动化

更新1:

指定 nuget.exe 的路径(版本:4.9.2)我收到一个新错误,提示“警告:找不到项目文件 [path to proejct]

Update2(构建定义 - NuGet 安装程序组件):

解决方案路径:'解决方案的正确路径..' NuGet.config 路径:'NuGet.config 的正确路径' 禁用本地缓存,勾选 NuGet 参数:空 NuGet.exe 的路径:$(NuGetPath),在变量中设置的路径

【问题讨论】:

你能分享你的构建定义吗? @ShaykiAbramczyk 是的,但我不知道;我该怎么做? :D 打印屏幕...? @ShaykiAbramczyk 看起来有点矫枉过正,我以为有一个链接,我会在更新中列出配置及其值 尝试隐藏任何包和 bin 文件夹,看看是否有区别。我遇到了构建任务的问题,如果有任何残留的软件包,则会跳过还原。您是使用 Nuget 还原任务(就像您应该使用的那样)还是使用 Visual Studio 构建任务并选中还原包复选框?还假设您使用的是 vs build 任务(通常),您是否将其设置为使用 2017 年或 2015 年? 【参考方案1】:

对于遇到此问题的其他人

我按照 pinkfloydx33 的建议将所有网站项目转换为 webapps。 这比我想象的要容易而且直截了当,这些项目仍有一些重构工作要做​​,但一切都很完美

【讨论】:

以上是关于TFS MSBuild 不为解决方案中的网站恢复 nugets的主要内容,如果未能解决你的问题,请参考以下文章

MSBuild 脚本中的 TFS 2013 分支名称

带有 TFS 的 MSBuild 的免费图形用户界面工具?

仅使用 MSBuild 进行 TFS2012 夜间部署

MSBUILD:错误MSB1009:项目文件不存在

2017年TFS - VS 2017 15.5更新后默认为MSBuild 14。需要MSBuild 15回来

TFS2010:构建配置问题