繁体   English   中英

Gulp 任务失败,错误:MSBuild 失败,代码 1! 在 Visual Studio 2019 中

[英]Gulp task failed with error: MSBuild failed with code 1! in Visual Studio 2019

我知道关于 SO 的问题很少,但它们要么没有答案,要么解决方案对我没有帮助。

此 gulp 任务在其他机器上使用Visual Studio 2017成功执行,但不能在Visual Studio 2019

当我运行“Build-Solution”任务时,它失败并显示以下错误

[11:33:58] 开始“构建解决方案”……

MSBUILD : 错误 MSB1001:

未知开关。 开关:/restore 对于开关语法,键入“MSBuild

/help" [11:33:59] MSBuild 失败,代码为 1![11:33:59]

“构建解决方案”在 1.04 秒后出错 [11:33:59] 错误:MSBuild 失败,代码为 1!

 at ChildProcess.<anonymous> (C:\\Projects\\MyProj\\node_modules\\gulp-msbuild\\lib\\msbuild-runner.js:66:25) at ChildProcess.emit (events.js:314:20) at ChildProcess.EventEmitter.emit (domain.js:506:15) at Process.ChildProcess._handle.onexit (internal/child_process.js:276:12) at Process.callbackTrampoline (internal/async_hooks.js:126:14) Process terminated with code 1.

因此,这取决于您使用的构建脚本。 与 Sitecore Habitat 一起使用的默认 gulp 脚本正在使用此 gulp 模块: https : //www.npmjs.com/package/gulp-msbuild

而且,您正在使用此模块来构建这样的任务

gulp.task("default", function() {
return gulp.src("./project.sln")
    .pipe(msbuild({
        targets: ['Clean', 'Build'],
        toolsVersion: 3.5
        })
    );

});

如果您正在使用这个,我猜您正在尝试在您的任务中使用 msbuild 开关,例如:

gulp.task("default", function() {
return gulp.src("./project.sln")
    .pipe(msbuild({
        ...,
        restore:true
        ...
        })
    );

});

因为是的,Msbuild 提供了这样的开关,你可以在这里找到,但是如果我没有错的话,gulp -msbuild插件默认尝试使用 vs2017。 msbuild-finder.js你可以看到它正在 vs2017 目录中寻找 msbuild 工具:

  function detectMsBuild15Dir(pathRoot) {

  const vs2017Path = path.join(pathRoot, "Microsoft Visual Studio", "2017");
  const possibleFolders = [ "BuildTools", "Enterprise", "Professional", "Community" ];

  for (let index = 0; index < possibleFolders.length; index++) {
    try {
      const folderPath = path.join(vs2017Path, possibleFolders[index]);
      fs.statSync(folderPath);
      return folderPath;
    } catch (e) {
    }
  }
}

但是,如果您指定版本路径,则应该很好(来自msbuild-command-builder.js ):

  if (!options.msbuildPath) {
    const msbuildFinder = require("./msbuild-finder");
    options.msbuildPath = msbuildFinder.find(options);
  }

安装 Visual Studio 2019 后,我相信您应该使用 buildToolsVersion 15.0。 看到这个线程

另一方面,您可能希望改用msbuild 插件 我还有一篇文章介绍了从 gulp3.9 到 gulp4 的切换,其中包含一些 msbuild 示例。 你可能会发现它相关

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM