2009-05-25 12 views
2

同じVisual Studio 2008デプロイメントプロジェクトを使用してx86 msiパッケージとx64パッケージを作成したいとします。同じvdprojファイルを使用してx86およびx64インストーラを作成しますか?

プロジェクトのプロパティダイアログでTargetPlatformが表示されますが、これを使用してx86またはx64(またはItanium)を選択することができます。

問題は、私は、プロジェクトの設定で、このプロパティを関連付けるように見えることができないこと(?)理想的には、私は何をできるようにしたいことはdevenvを実行して、別のx86およびx64 MSIインストーラを作成することです

です。ビルドスクリプト(バッチファイル)からexeを2回実行すると、それぞれパラメータを指定してTargetPlatformプロパティを設定して呼び出します。

可能であれば、私はWIXやその他のサードパーティのツールを使用する必要はありません。

注:私はx86とx64の展開プロジェクトの違いは主にあることに気づいた:

  • フォルダ\ます。DefaultLocation = ProgramFilesFolderの(x86の)| ProgramFiles64Folder(x64)
  • Product \ TargetPlatform = "3:0"(x86)|フィードバック"3:1"(x64)| "3:2"(Itanium)

devenv.exeを使用して別々のmsiパッケージを作成するには、2つの異なる展開プロジェクトを作成する必要がありますか?

私はDEVENV.EXEの各呼び出しの前にそれらの変更を行うために、スクリプトを使用できると仮定(?)

答えて

2

私はdevenvをコマンドを実行する前にvdprojファイルに置き換えた文字列を使用する必要がありました。この問題があったとき。あまりにも私のために

<Project DefaultTargets="Default" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
<PropertyGroup> 
<Configuration>Release</Configuration> 
<x86>3:0</x86> 
<x64>3:1</x64> 
<Import Project="$(SDCTasksPath)\Microsoft.Sdc.Common.tasks"/> 
<Target Name="Default"> 
    <File.Replace Path="$(SolutionDirectory)Setup\Setup.vdproj" OldValue="%22TargetPlatform%22 = %22$(x86)%22" NewValue="%22TargetPlatform%22 = %22$(x64)%22" /> 
<Exec Command="devenv.exe $(SolutionDirectory)Solution.sln /build $(Configuration) /project $(SolutionDirectory)Setup\Setup.vdproj /projectconfig $(Configuration)"></Exec> 
+0

このソリューションの仕事:私はSDCTasks のタスクを置き換えファイルを使用し置き換えるためのその後、私のMSBuildプロジェクトは、ほとんどこのように見えました。 +1 –

関連する問題