我有一个MSBuild脚本,用于构建我的Windows窗体应用程序,生成应用程序清单并对其进行签名,然后生成部署清单。该脚本还为我生成了publish.htm文件。
现在我需要生成setup.exe文件,到目前为止我还无法弄清楚VS如何生成它。如何使用MSBuild脚本生成setup.exe文件?
提前感谢您的帮助!
答案 0 :(得分:2)
您可以使用内置的GenerateBootstrapper MSBuild任务
当您从Visual Studio执行发布时,这也是ClickOnce使用的内容。
查看C:\ Windows \ Microsoft.NET \ Framework \\ Microsoft.Common.Targets以查看到底发生了什么。
查看_DeploymentGenerateBootstrapper目标。
您的CSharp项目文件包含此目标用于确定的一些项目和属性:
希望这是有道理的。通过一些工作,您可以使用MSBuild文件实现从Visual Studio发布时所发生的事情。
答案 1 :(得分:1)
您想要msbuild的标志是:
/target:publish
和
/p:PublishDir=C:\Foo\
请注意,必须在发布目录上有一个尾随\
,或者它只是简单地执行发布(即构建)的相关步骤,而从不实际生成安装程序。
您可能对msbuild
npm包感兴趣:
var msbuild = require('msbuild');
var path = require('path');
// Config
var source = 'source/Bar/Bar.App/Bar.App.csproj';
var deploy = path.join(__dirname, 'deploy');
// Build the project
var builder = new msbuild();
builder.sourcePath = source;
builder.overrideParams.push('/p:PublishDir=' + deploy + "\\"); // <-- Installer
builder.overrideParams.push('/Target:rebuild;publish');
builder.overrideParams.push('/P:Configuration=Release');
builder.overrideParams.push('/P:verbosity=diag');
builder.overrideParams.push('/P:Platform=x86');
builder.overrideParams.push('/fl');
builder.overrideParams.push('/flp:logfile=build.log;verbosity=diagnostic');
builder.publish();
...你可以运行类似的东西:
npm install msbuild
node builder.js
不需要powershell。