VSTS 构建失败 MSB1009 项目文件不存在

Posted

技术标签:

【中文标题】VSTS 构建失败 MSB1009 项目文件不存在【英文标题】:VSTS Build Failure MSB1009 Project File Does Not Exist 【发布时间】:2017-07-19 23:57:36 【问题描述】:

我有一个简单的解决方案树:

存储库:DFW-SPF-网站 |-- 解决方案:DFWSPF网站 |-- |-- 项目:DFWSPF网站

在我之前的帖子中,我解释了获得 VSTS 以找到我的 NuGet 包所必须经历的曲折。引导其 MSBuild 过程甚至找到 .sln 文件都需要一段时间。现在 MSBuild 找不到项目文件。真的吗?!

经过无数次化身,我目前的构建设置是:

解决方案:$(build.sourcesDirectory)/DFWSPFWebsite/DFWSPFWebsite.sln

MSBuild 参数:/p:ProjectFile=$(build.sourcesDirectory)\DFWSPFWebsite\DFWSPFWebsite\DFWSPFWebsite.csproj

平台:$(BuildPlatform) 配置:$(BuildConfiguration) 干净:真 VS 版本:2015/2017/最新版(都试过了) 控制选项:启用

我无法通过以下 MSBuild 错误:

"C:\Program Files (x86)\MSBuild\14.0\bin\msbuild.exe" "D:\a\1\s\DFWSPFWebsite\DFWSPFWebsite.sln" /nologo /nr:false /t:"Clean " /dl:CentralLogger,"D:\a_tasks\VSBuild_abc-xyz\1.113.0\ps_modules\MSBuildHelpers\Microsoft.TeamFoundation.DistributedTask.MSBuild.Logger.dll";"RootDetailId=abc-xyz|SolutionDir=D:\a \1\s\DFWSPFWebsite"*ForwardingLogger,"D:\a_tasks\VSBuild_71abc-xyz\1.113.0\ps_modules\MSBuildHelpers\Microsoft.TeamFoundation.DistributedTask.MSBuild.Logger.dll" /p:ProjectFile=D:\a\ 1\s\DFWSPFWebsite\DFWSPFWebsite.csproj /p:platform="any cpu" /p:configuration="release" /p:VisualStudioVersion="14.0" /p:_MSDeployUserAgent="VSTS_abc-xyz_build_2_38" MSBUILD:错误 MSB1009:项目文件不存在。 开关:D:\a\1\s\DFWSPFWebsite\DFWSPFWebsite.sln 进程“msbuild.exe”以代码“1”退出。 "C:\Program Files (x86)\MSBuild\14.0\bin\msbuild.exe" "D:\a\1\s\DFWSPFWebsite\DFWSPFWebsite.sln" /nologo /nr:false /dl:CentralLogger,"D: \a_tasks\VSBuild_71abc-xyz\1.113.0\ps_modules\MSBuildHelpers\Microsoft.TeamFoundation.DistributedTask.MSBuild.Logger.dll";"RootDetailId=abc-xyz|SolutionDir=D:\a\1\s\DFWSPFWebsite"*ForwardingLogger "D:\a_tasks\VSBuild_71abc-xyz\1.113.0\ps_modules\MSBuildHelpers\Microsoft.TeamFoundation.DistributedTask.MSBuild.Logger.dll" /p:ProjectFile=D:\a\1\s\DFWSPFWebsite\DFWSPFWebsite.csproj /p:platform="任何 cpu" /p:configuration="release" /p:VisualStudioVersion="14.0" /p:_MSDeployUserAgent="VSTS_14abc-xyz_build_2_38" MSBUILD:错误 MSB1009:项目文件不存在。 开关:D:\a\1\s\DFWSPFWebsite\DFWSPFWebsite.sln 进程“msbuild.exe”以代码“1”退出。

我从没想过我会如此怀念我的 XAML 部署。

【问题讨论】:

如果DFWSPFWebsite\DFWSPFWebsite\DFWSPFWebsite.csproj中存在项目文件,请检查您的项目。顺便说一句,请同时检查 MSBuild Arguments,它是 /p:ProjectFile=$(build.sourcesDirectory)\DFWSPFWebsite\DFWSPFWebsite\DFWSPFWebsite.csproj/p:ProjectFile=$(build.sourcesDirectory)\DFWSPFWebsite \DFWSPFWebsite.csproj。根据您的日志/p:ProjectFile=D:\a\1\s\DFWSPFWebsite\DFWSPFWebsite.csproj,您设置的参数似乎是/p:ProjectFile=$(build.sourcesDirectory)\DFWSPFWebsite 如果我查看代码选项卡,项目就在那里,所有必需的文件也在那里。绝望中,我尝试了@Marina 提到的项目路径的两个版本以及无数其他差异。我几乎要在 VS 2015 中重建整个东西,因为我怀疑我的基本问题是,即使从那时起我已经通过任何版本的 VS 迁移它,我很久以前在 VS 中启动了 sln 2010. 问题是,查找 .csproj 文件是如此简单的事情——这怎么行不通?而且我还有更多的部署步骤。麻烦。 如果您将 MSBuild Arguments 留空怎么办?默认直接在当前工作中查找项目文件。 如果我将 MSBuild 参数留空,我会收到与上述相同的错误。 Build 找到 NuGet Packages 文件夹和 .sln 文件只是因为我指定了它们的几乎绝对路径。 ***.sln 路径变体不适用于我的任何构建设置。现在 MSBuild 找到了它们,但找不到解决方案眼皮底下的项目 - 即使我用手将 MSBuild 引导到项目(参数)。这怎么可能? 【参考方案1】:

我得到了一个干净的构建!是的,省略号很好——我使用的是预发布 UI。我还必须将几个外部引用的 dll 重新定位到 sln 下的 dll 文件夹中。而且,我必须从 csproj 文件中删除 <Target Name="EnsureBclBuildImported"…/><Import Project="..\packages\Microsoft.Bcl.Build…/><Target Name="EnsureNuGetPackageBuildImports"…/> 节点。请参阅 [MSDN] (https://docs.microsoft.com/en-us/nuget/consume-packages/package-restore#migrating-to-automatic-restore) 因为我不应该这样做,所以我不会向 @Marina 发送我无法估量的感谢。 :*

【讨论】:

【参考方案2】:

首先,请在 VS 2015 中构建您的解决方案,以确保它可以成功构建。然后你就可以在 VSTS 中构建了。

由于您只想构建一个解决方案,因此您可以从 按钮中选择 DFWSPFWebsite.sln 用于 nuget 安装程序任务和 Visual Studio 构建任务。

Nugget 安装程序:

Visual Studio 构建:

【讨论】:

通过以前的 XAML 部署到 Azure,sln 始终可以正常构建和运行。我更新到 VS 2017 RC,现在使用更灵活的**\*.sln。 VSTS MSBuild 现在找到 .csproj 文件。错误消息的 url 指向 2013 年的页面 re NuGet 2.17 和 NuGet 包恢复,自 2015 年以来就没有在 VS 中。我使用的是 NuGet 3.5。 >DFWSPFWebsite\DFWSPFWebsite\DFWSPFWebsite.csproj(739,5):错误:此项目引用此计算机上缺少的 NuGet 包。启用 NuGet 包还原以下载它们。有关详细信息,请参阅go.microsoft.com/fwlink/?LinkID=317567。 我怀疑我需要听从 @Marina 的建议重新安装 NuGet 安装程序/恢复,但我找不到她在上面捕获的页面。 VSTS 本身并没有在其代码页面上提供类似的东西。我错过了什么? 我列出了操作号,所以你应该先点击...按钮,然后再点击.sln 在我的情况下,我的分支的继承设置为关闭,这导致了这个问题,在设置为关于找不到项目文件的问题之后。

以上是关于VSTS 构建失败 MSB1009 项目文件不存在的主要内容,如果未能解决你的问题,请参考以下文章

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

“错误 MSB1009:项目文件不存在。”使用竹子部署 asp.net 项目时

cmake cmake MSBUILD : error MSB1009: 项目文件不存在 or MSBuild.exe not find !

cmake cmake MSBUILD : error MSB1009: 项目文件不存在 or MSBuild.exe not find !

Jetbrains Rider:[MSB4057] 项目中不存在目标“构建”

如何解决 Jenkins 构建失败错误:MSB4041