MSBuild错误:属性DirectoryName不存在或未找到。

3
这是我第一次尝试在Visual Studio Online上配置自动化构建。
创建新的构建后,我把它排队运行。第一步(获取源代码)成功完成。现在,在构建步骤中遇到了错误。以下是包含该消息的小片段:
执行powershell脚本:C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\tasks\VSBuild\1.0.13\VSBuild.ps1
错误:属性DirectoryName不存在或未找到。
C:\Program Files (x86)\MSBuild\14.0\bin\msbuild.exe "C:\a\5bc0b6a3\MySolution" /nologo /m /nr:false /fl /flp:"logfile=C:\a\5bc0b6a3\MySolution.log" /dl:CentralLogger,"C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agent\worker\Microsoft.TeamFoundation.DistributedTask.MSBuild.Logger.dll"*ForwardingLogger,"C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agent\worker\Microsoft.TeamFoundation.DistributedTask.MSBuild.Logger.dll" /p:platform="any cpu" /p:configuration="debug" /p:VisualStudioVersion="14.0"
MSBUILD : error MSB1009: 项目文件不存在。
我已在整个解决方案中搜索DirectoryName字符串,但没有成功,并且不知道它的含义。
编译在我的PC上正常工作,但我不知道从哪里开始查找。
有什么想法吗?
2个回答

4

您错过了真正的错误:

785 2015-08-31T16:30:54.2859104Z MSBUILD : error MSB1009: Project file does not exist.

您需要指定解决方案文件的路径。您可以看到您没有:

C:\Program Files (x86)\MSBuild\14.0\bin\msbuild.exe "C:\a\5bc0b6a3\MySolution" /nologo /m /nr:false /fl /flp:"logfile=C:\a\5bc0b6a3\MySolution.log" /dl:CentralLogger,"C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agent\worker\Microsoft.TeamFoundation.DistributedTask.MSBuild.Logger.dll"*ForwardingLogger,"C:\LR\MMS\Services\Mms\TaskAgentProvisioner\Tools\agent\worker\Microsoft.TeamFoundation.DistributedTask.MSBuild.Logger.dll" /p:platform="any cpu" /p:configuration="debug" /p:VisualStudioVersion="14.0"

您可以只为“Solutions”参数指定**\*.sln,它将发现并构建映射的工作区中的所有解决方案。如果您需要更加具体的内容,也可以这样做。

1
我尝试只指定一个项目(.csproject),因为我的解决方案有几个,我不想编译所有项目。但似乎获取整个解决方案是一种常见的方法,以避免额外的配置。此外,当未指定解决方案时,nugget似乎存在一些下载软件包的问题。由于我正在开始自动化构建,所以我决定按照您的建议改回***.sln。谢谢。 - Igor Kondrasovas
顺便提一下 - 在新的VSO构建管道中,Nuget会为解决方案中的所有项目恢复包,只需将其配置为单独的预构建步骤,而不是在解决方案内部使用“启用构建时Nuget还原”选项。此外,我在构建单独的项目或自定义构建脚本方面没有任何问题。唯一可能出错的是,在这种情况下需要显式指定平台和配置属性。 - Alexey Shcherbak

0

解决方案文件所在的文件夹应该在“存储库”选项卡下定义的映射路径中或其下方,否则将出现“项目文件不存在”的错误。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接