我有一個MSBuild腳本,它構建我的Windows窗體應用程序,生成應用程序清單並對其進行簽名,然後生成部署清單。該腳本也爲我生成publish.htm文件。使用MSBuild從命令行生成ClickOnce部署setup.exe
現在我需要生成setup.exe文件,到目前爲止我還無法弄清楚VS如何生成它。我如何使用MSBuild腳本生成setup.exe文件?
非常感謝您的幫助!
我有一個MSBuild腳本,它構建我的Windows窗體應用程序,生成應用程序清單並對其進行簽名,然後生成部署清單。該腳本也爲我生成publish.htm文件。使用MSBuild從命令行生成ClickOnce部署setup.exe
現在我需要生成setup.exe文件,到目前爲止我還無法弄清楚VS如何生成它。我如何使用MSBuild腳本生成setup.exe文件?
非常感謝您的幫助!
您可以使用內置的GenerateBootstrapper MSBuild任務
當你從Visual Studio中發佈,這也是什麼的ClickOnce使用。
檢出C:\ Windows \ Microsoft.NET \ Framework \\ Microsoft.Common.Targets查看到底發生了什麼。
查看_DeploymentGenerateBootstrapper目標。
你CSHARP項目文件中包含一些項目和屬性,這一目標使用弄清楚:
希望這MAK安裝意義。通過一些工作,你可以用你的MSBuild文件實現你從Visual Studio發佈時的確切內容。
謝謝,我會看看它。要解決這個問題,當我沒有迴應我的問題時,我複製了Visual Studio生成的文件在我的一個部署中並重新使用它。它似乎工作正常,但這個任務可能是我正在尋找的。即使它不能解決我的問題,它仍然是一個額外的任務:) – TheCee 2010-10-04 15:02:57
要的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的。
你的setup.exe有什麼變化,需要在每次構建時生成? – codeConcussion 2010-09-17 17:08:42
我不一定會在每個版本中生成它。我打算將腳本重用於不同的應用程序,所以如果是新應用程序,我希望腳本生成設置。 – TheCee 2010-09-20 15:30:20