コマンド プロンプトで コマンド.vdproj
を使用して、ファイルから MSI ファイルを生成したいと考えています。devenv
このコマンドは正常に実行されていますが、MSI ファイルは生成されません。なにが問題ですか?
環境変数に何を設定する必要がありますか、または.vdproj
ファイルから MSI を生成する他の方法はありますか?
コマンド プロンプトで コマンド.vdproj
を使用して、ファイルから MSI ファイルを生成したいと考えています。devenv
このコマンドは正常に実行されていますが、MSI ファイルは生成されません。なにが問題ですか?
環境変数に何を設定する必要がありますか、または.vdproj
ファイルから MSI を生成する他の方法はありますか?
これは通常、(私の経験では!) 正しいビルド構成をターゲットにしていないことが原因です。Visual Studio 内では、ソリューション レベルで、Build
メニューに移動して を選択できますConfiguration Manager
。該当するすべての構成 (Active Solution Configuration
ドロップダウンで選択) について、インストーラー プロジェクトのBuild
列にチェックマークが付いていることを確認します。
次に、devenv を呼び出すときに、次のように適切なビルド構成 (つまりBuild
、セットアップ プロジェクトにチェックを入れたもの) を渡すようにする必要があります。
C:\PathToVisualStudio\devenv.exe /Rebuild Release C:\PathToProject\ProjectName.sln" /Out "PathToProject\vs_errors.txt"
(この例でRelease
は、私がターゲットにしているビルド構成です)
このコマンドは、Visual Studio の出力をvs_errors.txt
、ソリューションと同じフォルダーで呼び出されるテキスト ファイルにも記録するため、これを確認して、セットアップ プロジェクトのビルドに失敗した他の理由があるかどうかを判断できます。
上記のスクリプトはうまくいきました。試してみて、うまくいくかどうか教えてください。ほぼすべての構成を使用できます。私は使用しRelease|x86
ました。その行を構成に置き換えるだけで機能するはずです。.sln
使用する構成がファイルまたはファイルに存在することを確認してください.csproj
。そうしないと、無効な構成に関するエラーが発生する可能性があります。お役に立てれば。
<target name="BuildMsi">
<echo message="Creating installables (.msi) for MyTestApplication, please wait..."/>
<exec program="c:\program files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe">
<arg value="c:\My app\My_Test_solution.sln"/>
<arg value="/build"/>
<arg value="Release|x86" />
<arg value="/project"/>
<arg value="c:\My app\setup\My_Test_solution.vdproj"/>
</exec>
</target>
私の場合も同じで、/project でプロジェクト名を指定すると、.msi ファイルの生成に役立ちました。
devenv /build Release /project SDK-Deployment SDK-Deployment.vdproj
devenv.com から msi が生成されるとは思いません。 nant を使用して wix を選択してインストーラーを作成することもできます。
Nant には msi タスクというタスクがありますが、ダウンロードできない micrsoft キャビネット SDK が必要です。
詳しくはこちらをお読みください.vdproj から Devenv を使用せずにマージ モジュールをビルドします
ps インストーラーをビルドする別の方法を見つけた場合は、共有してください。