
Security News
Meet Socket at Black Hat and DEF CON 2025 in Las Vegas
Meet Socket at Black Hat & DEF CON 2025 for 1:1s, insider security talks at Allegiant Stadium, and a private dinner with top minds in software supply chain security.
Clean. Build. Package. Publish.
With npm do:
npm install msbuild
With bower do:
bower install msbuild
msbuild.msbuildPath = 'c:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Current\\Bin\\msbuild.exe'
name: MsbuildPath
value: <your path to msbuild>
Example for VS 2022
name: MsbuildPath
value: C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin
var _msbuild = require('msbuild');
var msbuild = new _msbuild();
msbuild.sourcePath = 'c:/your_app.sln';
msbuild.build();
var _msbuild = require('msbuild');
var msbuild = new _msbuild();
msbuild.sourcePath = 'c:/your_app.sln';
msbuild.config('version','17.0')
msbuild.build();
*note: sourcePath .csproj
var _msbuild = require('msbuild');
var msbuild = new _msbuild();
msbuild.sourcePath = 'c:/your_app.csproj';
msbuild.overrideParams.push('/P:User=myusername');
msbuild.overrideParams.push('/P:Password=myp@assword');
msbuild.publish();
*note: sourcePath .csproj
var _msbuild = require('msbuild');
var msbuild = new _msbuild();
msbuild.sourcePath = 'c:/your_app.csproj';
msbuild.package();
If you wish to log to file override "msbuild.logger". See example below.
var fs = require('fs');
var util = require('util');
var log_file = fs.createWriteStream(__dirname + '/log.txt', {flags : 'w'});
var log_stdout = process.stdout;
msbuild.logger = function(d) { //
log_file.write(util.format(d) + '\n');
log_stdout.write(util.format(d) + '\n');
};
var _msbuild = require('msbuild');
var msbuild = new _msbuild(function(){});
msbuild.sourcePath = 'c:/your_app.sln';
msbuild.configuration='Release';
msbuild.publishProfile='Production_Environment';
var overrideParams = [];
overrideParams.push('/p:VisualStudioVersion=14.0');
overrideParams.push('/p:allowUntrustedCertificate=true');
overrideParams.push('/P:Password=myp@assword');
msbuild.config('overrideParams',overrideParams);
msbuild.publish();
'/p:VisualStudioVersion=14.0' sets version location C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0 '/tv:14.0' sets proj file targets
var _msbuild = require('msbuild');
var msbuild = new _msbuild();
msbuild.sourcePath = 'c:/your_app.sln';
msbuild.overrideParams.push('/clp:ErrorsOnly');
msbuild.build();
var _msbuild = require('msbuild');
var msbuild = new _msbuild();
msbuild.sourcePath = 'c:/your_app.sln';
msbuild.configuration = 'your_app_configuration';
msbuild.publishProfile='your_app_publish_profile';
msbuild.exec = function(cmd,params,cb){
console.log('\nTEST 1: Preview MSBUILD Command');
console.log('********** test - start ************');
console.log(cmd);
console.log(params);
console.log('********** test - end ************\n');
}
msbuild.publish();
var your_callback = function(){
console.log('msbuild done. move on...');
}
var _msbuild = require('msbuild');
var msbuild = new _msbuild(your_callback);
msbuild.sourcePath = 'c:/your_app.sln';
msbuild.configuration = 'your_app_configuration';
msbuild.publishProfile='your_app_publish_profile';
msbuild.build();
var fs = require('fs');
var _msbuild = require('msbuild');
var msbuild = new _msbuild();
msbuild.logger = function(results){
fs.appendFile('test.txt', '\n' + results, function (err) {});
};
var fs = require('fs');
var _msbuild = require('msbuild');
var msbuild = new _msbuild();
msbuild.on('status',function(err,results){
fs.appendFile('test.txt', '\nRESULTS: ' + results, function (err) {});
});
msbuild.on('error',function(err,results){
fs.appendFile('test.txt', '\nERROR: ' + results, function (err) {});
});
msbuild.on('done',function(err,results){
fs.appendFile('test.txt', '\nDONE: ' + results, function (err) {});
});
additional configuration parameters
os
currently only support windowsprocessor
'x86', 'x64'version
tools version; determines local path to msbuild.exesourcePath
'c:/mypath/mysolution.sln' or 'c:/mypath/myproject.csprojconfiguration
solution configurations; targets an environment (debug,release)publishProfile
publish profile; targets a specific machine (app01,app02)outputPath
package deploy pathoverrideParams
property overrides ['/p:WarningLevel=2','/p:OutputDir=bin\Debug','/tv:4.0']Changes include:
1. removed csproj and sln validation. not necessary.
2. fixed broken tests commented out in release "3.4.0"
3. moved examples into separate repo [nodejs-msbuild-examples](https://github.com/jhaker/nodejs-msbuild-examples)
Changes include:
1. console.log extracted to allow extension
2. minor formatting - adjustment of line indentations
'12.0': '12.0',
'14.0': '14.0'
Changes include:
1. overrideParams validation has been corrected to support single character parameters
Example: "/m"
2. no longer requires "configuration"
3. no longer requires "publishProfile"
"sourcePath" is required if the "configuration" and "publishProfile" are not defined
build script
var _msbuild = require('msbuild');
var msbuild = new _msbuild();
msbuild.sourcePath = 'C:/myproject.sln'
msbuild.publishProfile = 'myproject';
msbuild.configuration = 'release';
msbuild.publish();
error
"C:\myproject\myproject.csproj" (default target) (1) ->
(MSDeployPublish target) -> C:\Program Files (x86)\MSBuild
\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.
targets(4295,5): msdeploy error ERROR_USER_UNAUTHORIZED:
Web deployment task failed. (Connected to the remote
computer ("111.111.111.11") using the Web Management Service,
but could not authorize. Make sure that you are using the
correct user name and password, that the site you are
connecting to exists, and that the credentials represent a
user who has permissions to access the site. Learn more at:
http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_USER_
UNAUTHORIZED.) [C:\myproject\myproject.csproj]
5 Warning(s)
1 Error(s)
Add deployment credentials.
(Option 1)
(Option 2)
/*** modified build script ***/
var _msbuild = require('msbuild');
var msbuild = new _msbuild();
msbuild.sourcePath = 'C:/myproject.sln'
msbuild.publishProfile = 'myproject';
msbuild.configuration = 'release';
msbuild.overrideParams.push('/P:User=user_name');
msbuild.overrideParams.push('/P:Password=user_pwd');
msbuild.publish();
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\ Microsoft.Cpp.Platform.targets(64,5): error MSB8020: The build tools for Visual Studio 2012 (Platform Toolset = 'v110') cannot be found.
Include overrideParams(--msvs_version=2012
) or update your csproj files
build script
var _msbuild = require('msbuild');
var msbuild = new _msbuild();
msbuild.sourcePath = 'C:/myproject/myproject.csproj'
msbuild.package();
error
"C:\myproject\myproject.csproj" (package target) (1) ->(
BuildPackage target) -> C:\.nuget\NuGet.targets(109,9):
error : The imported project "C:\Program Files
(x86)\MSBuild\Microsoft\VisualStudio\v12.0\WebApplications
\Microsoft.WebApplication.targets" was not found.
Confirm that the path in the <Import> declaration is
correct,and that the file exists on disk. C:\myproject
\myproject.csproj [C:\myproject\myproject.csproj]
C:\.nuget\NuGet.targets(109,9): error MSB3073:The
command ""..\.nuget\NuGet.exe" pack "C:\myproject
\myproject.csproj" -Properties "Configuration=Debug;
Platform=AnyCPU" -NonInteractive -OutputDirectory
"C:\myproject\bin" -symbols" exited with code 1.
[C:\myproject\myproject.csproj] 7 Warning(s)
Try removing <BuildPackage>true</BuildPackage>
from project configuration file "*.csproj". It can be found near the top nested under <PropertyGroup>
.
If anyone knows why this worked in Visual Studio but not cmd line please post.
FAQs
msbuild wrapper
The npm package msbuild receives a total of 3,755 weekly downloads. As such, msbuild popularity was classified as popular.
We found that msbuild demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Meet Socket at Black Hat & DEF CON 2025 for 1:1s, insider security talks at Allegiant Stadium, and a private dinner with top minds in software supply chain security.
Security News
CAI is a new open source AI framework that automates penetration testing tasks like scanning and exploitation up to 3,600× faster than humans.
Security News
Deno 2.4 brings back bundling, improves dependency updates and telemetry, and makes the runtime more practical for real-world JavaScript projects.