【问题标题】:The target “Build” does not exist in the project working with Continuous integration with MSbuild for U-SQL使用 MSbuild for U-SQL 持续集成的项目中不存在目标“构建”
【发布时间】:2018-03-28 13:50:27
【问题描述】:

我正在使用 MSBuild for U-SQL 与 vsts 进行持续集成,引用链接:https://blogs.msdn.microsoft.com/azuredatalake/2017/10/24/continuous-integration-made-easy-with-msbuild-support-for-u-sql-preview/

但我在使用 VSTS 构建服务器时遇到以下问题

验证解决方案配置: 构建解决方案配置“调试|任何 CPU”。 ADLAUSQL1\ADLAUSQL1.usqlproj(0,0):错误 MSB4057:项目中不存在目标“Build”。 项目“D:\a\1\s\ADLAUSQL1.sln”(1)正在节点 1(默认目标)上构建“D:\a\1\s\ADLAUSQL1\ADLAUSQL1.usqlproj”(2)。 D:\a\1\s\ADLAUSQL1\ADLAUSQL1.usqlproj:错误MSB4057:项目中不存在目标“Build”。 完成构建项目“D:\a\1\s\ADLAUSQL1\ADLAUSQL1.usqlproj”(默认目标)——失败。 完成构建项目“D:\a\1\s\ADLAUSQL1.sln”(默认目标)——失败。 构建失败。 "D:\a\1\s\ADLAUSQL1.sln" (默认目标) (1) -> "D:\a\1\s\ADLAUSQL1\ADLAUSQL1.usqlproj" (默认目标) (2) -> D:\a\1\s\ADLAUSQL1\ADLAUSQL1.usqlproj:错误MSB4057:项目中不存在目标“Build”。 0 个警告 1 个错误

我的构建参数是 - /p:USQLSDKPath=$(Build.SourcesDirectory)/USQLMSBuild/packages/Microsoft.Azure.DataLake.USQL.SDK.1.3.180223/build/runtime /p:USQLTargetType=SyntaxCheck /p: DataRoot=$(Build.SourcesDirectory)

任何帮助将不胜感激。如果您需要任何进一步的信息,请告诉我。

【问题讨论】:

标签: msbuild azure-devops azure-data-lake u-sql


【解决方案1】:

要解决此问题,请检查以下几个方面:

  1. usql项目可以用msbuild成功构建 首先,您应该确保您的项目可以在本地机器上成功构建。然后在 VSTS 中构建。

  2. 检查 MSBuild 参数

    假设您的 repo 中的项目结构如下:

    root repo
        |___ADLAUSQL1.sln
        |___ADLAUSQL1
               |___ADLAUSQL1.usqlproj
               |___...
    

    那么您应该将USQLSDKPath 指定为$(Build.SourcesDirectory)/ADLAUSQL1/packages/Microsoft.Azure.DataLake.USQL.SDK.1.3.180223/build/runtime

    注意: Microsoft.Azure.DataLake.USQL.SDK.1.3.180223 表示您在项目中安装包 Microsoft.Azure.DataLake.USQL.SDK 的 1.3.180223 版本。

  3. 正确选择项目的VS版本

    并确保您使用正确的 VS 版本进行构建。由于您使用的是托管代理,请根据您的要求选择托管代理或托管VS2017代理:

    • 如果你想用 VS2015 构建你的项目,你应该选择 Hosted agent。
    • 如果你想用 VS2017 构建你的项目,你应该改用 Hosted VS2017 代理。

【讨论】:

  • 按照您的消息中的步骤进行操作,但我面临以下问题 - ADLAUSQL1\ADLAUSQL1.usqlproj(34,3):错误 MSB4019:导入的项目“C:\Users\buildguest\AppData\未找到 Roaming\Microsoft\DataLake\MsBuild\1.0\Usql.targets"。确认 声明中的路径是正确的,并且该文件存在于磁盘上我正在遵循与 Azure 数据工厂相同的过程。但是我在这里遇到了上述错误。
  • 这是我的项目文件中的导入命令
  • 所以您导入了位于本地的文件?那是因为您正在使用无法获取本地文件的托管代理。该问题的两种选择。选项1:在您的本地机器上设置一个私有代理,并将构建与私有代理排队。选项2:将导入的文件添加到同一个仓库中,并使用新路径导入。
  • 感谢您的信息。我现在已经设置了一个私人代理并遇到了这个问题 - MSB4062:无法从程序集 Microsoft.Cosmos.ScopeStudio.VsExtension.CompilerTask。无法加载文件或程序集。
  • @ArunS 由于您最初提出的问题已经解决,您可以标记答案(答案左侧的√符号)。它也将使其他有类似问题的人受益。对于您的其他问题,请参阅帖子stackoverflow.com/questions/49574154/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-11-06
  • 1970-01-01
  • 2010-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-14
相关资源
最近更新 更多