2017-06-30 3 views
0

J'ai un projet où Gulp task runner est configuré. Tout fonctionne parfaitement bien dans VS2015, mais quand j'ai mis à niveau vers VS2017 MSBuild a commencé à échouer.gulp task runner msbuild échoue, mais fonctionne dans cmd

La chose amusante est, que si je copie la ligne de commande qui échoue apparemment et la colle dans le cmd, alors cela fonctionne parfaitement bien.

je reçois l'erreur suivante:

[09:47:27] Building project: ..\DFS.Client\DFS.Client.csproj 
[09:47:27] Using automatic maxcpucount 
[09:47:27] Building project: 1 item 
[09:47:27] { Error: Command failed: "C:\Program Files 
(x86)\MSBuild\14.0\Bin\MSBuild.exe" 
"C:\solutions\dfs\code\DFS.Client\DFS.Client.csproj" "/target:Clean;Build" 
/verbosity:minimal /toolsversion:14.0 /nologo /maxcpucount 
/property:Configuration="Debug" /property:DeployOnBuild="true" 
/property:DeployDefaultTarget="WebPublish" 
/property:WebPublishMethod="FileSystem" 
/property:DeleteExistingFiles="false" 
/property:publishUrl="C:\inetpub\wwwroot\dfsdev\Website" 
/property:_FindDependencies="true" 
    at ChildProcess.exithandler (child_process.js:204:12) 
    at emitTwo (events.js:106:13) 
    at ChildProcess.emit (events.js:191:7) 
    at maybeClose (internal/child_process.js:891:16) 
    at Process.ChildProcess._handle.onexit (internal/child_process.js:226:5) 
killed: false, 
code: 1, 
signal: null, 
cmd: '"C:\\Program Files (x86)\\MSBuild\\14.0\\Bin\\MSBuild.exe" 
"C:\\solutions\\dfs\\code\\DFS.Client\\DFS.Client.csproj" 
"/target:Clean;Build" /verbosity:minimal /toolsversion:14.0 /nologo 
/maxcpucount /property:Configuration="Debug" /property:DeployOnBuild="true" 
/property:DeployDefaultTarget="WebPublish" 
/property:WebPublishMethod="FileSystem" 
/property:DeleteExistingFiles="false" 
/property:publishUrl="C:\\inetpub\\wwwroot\\dfsdev\\Website" 
/property:_FindDependencies="true"' } 
[09:47:27] Build failed! 

Si je copie la ligne de commande qui est déclarée comme défaut et l'exécuter dans le CMD cela fonctionne. J'ai essayé le suivant fix sans aucune chance.

La tâche engouffreur qui ne ressemble à ceci:

var publishProjects = function (location, dest) { 
dest = dest || config.websiteRoot; 
var targets = ["Build"]; 
if (config.runCleanBuilds) { 
    targets = ["Clean", "Build"]; 
} 
console.log("publish to " + dest + " folder"); 
return gulp.src([location + "/**/*.csproj"]) 
    .pipe(foreach(function (stream, file) { 
     return stream 
     .pipe(debug({ title: "Building project:" })) 
     .pipe(msbuild({ 
      targets: targets, 
      configuration: config.buildConfiguration, 
      logCommand: false, 
      verbosity: "minimal", 
      maxcpucount: 0, 
      toolsVersion: 14.0, 
      properties: { 
       DeployOnBuild: "true", 
       DeployDefaultTarget: "WebPublish", 
       WebPublishMethod: "FileSystem", 
       DeleteExistingFiles: "false", 
       publishUrl: dest, 
       _FindDependencies: "true" 
      } 
     })); 
    })); 
}; 

aide serait apprécié que je voudrais vraiment utiliser VS2017 plutôt que 2015.

+0

Quelqu'un? L'aide serait très appréciée –

Répondre

0

version Outils 14.0 est pour VS2015, version outils 15.0 est pour VS2017. Il y a une autre configuration que vous devrez peut-être changer pour l'activer aussi. J'espère que cela pourra aider.