Visual Studioのセットアップと展開:オプションのコンポーネントとパッケージを作成しますか?
-
05-09-2019 - |
質問
のは、例えば、私のアプリケーションは、Epsonプリンタとキヤノンのプリンタをサポートし、言ってみましょう。
私は「キヤノンのドライバをインストールしてください」「エプソンのドライバのインストール」を言うとです(両方を選択するオプションを持っている)インストール時のオプションで、おそらくラジオボタンまたは、より良い、チェックボックスを持っていると思います。
次に、ユーザの選択に基づいて、セットアップパッケージのみエプソンドライバ、またはのみキヤノンのドライバのいずれか、または両方をインストールします。
私はまた、いくつかの前提条件を有するものとして説明することができる何をしたいと思いますが、それらをオプションにています。
を開始する場所に任意の提案ですか?
解決
私は許可されていないMSIからMSIを実行しようとしているとして、VSセットアップと展開から行うことができない必要があるかのように見えます。回避策として、私は小さな「ラッパー」を作成する必要がありましたように、Windowsは、いくつかのチェックボックスを使用してアプリケーションを形成し、このような関数
private void InstallComponent(string filePath)
{
System.Diagnostics.Process installerProcess;
installerProcess = System.Diagnostics.Process.Start(filePath);
while (installerProcess.HasExited == false)
{
//indicate progress to user
Application.DoEvents();
System.Threading.Thread.Sleep(250);
}
}
と
の線に沿って何かをするだろう「インストール」ボタン private void buttonInstall_Click(object sender, EventArgs e)
{
if (checkBoxCanonDrivers.Checked)
{
InstallComponent("CanonSetup.exe");
}
if (checkBoxEpsonDrivers.Checked)
{
InstallComponent("EpsonSetup.exe");
}
// ............
InstallComponent("MyMainApplicationSetup.exe");
}
今オフこのアプリは柔軟にするために、等のXMLファイルからセットアップファイルの場所を読み込むように、それは質問の範囲外である...
他のヒント
私は(4つのチェックボックスまで、私は思うが、私は間違っている可能性があります)あなたは、少なくとも単純な場合のために、Visual Studioの展開プロジェクトでこれを行うことができると思います。このMSDNの記事を参照してください。のチェックボックスのユーザーインターフェイス]ダイアログボックスの>;それは、インストール時にチェックボックス付きのダイアログボックスを提示し、チェックボックスの選択に基づいてファイルを含めたり除外する方法について説明します。