2009-05-25 3 views
2

같은 Visual Studio 2008 배포 프로젝트를 사용하여 x64 패키지뿐만 아니라 x86 msi 패키지를 만들고 싶습니다.동일한 vdproj 파일을 사용하여 x86 및 x64 설치 프로그램을 만드시겠습니까?

프로젝트 속성 대화 상자에서 TargetPlatform을 볼 수 있는데, 이것을 사용하여 x86 또는 x64 (또는 Itanium)를 선택할 수 있음을 알고 있습니다.

문제는 내가 프로젝트 구성이 속성을 연결하는 것 수없는 (?) 이상적으로, 내가 무엇을 할 수 있도록하고 싶습니다 것은 devenv를 실행하여 별도의 x86 및 x64 MSI 설치 프로그램을 만드는 것입니다

입니다. exe 빌드 스크립트 (배치 파일)에서 두 번, 각각 어떻게 든 매개 변수를 제공하여 TargetPlatform 속성을 설정 호출합니다.

가능한 경우 WIX 또는 타사 도구를 사용하지 않아야합니다.

참고 : 나는 x86 및 x64 배포 프로젝트의 차이점은 주로 나타났습니다 :

  • 폴더 \를 DefaultLocation = ProgramFilesFolder (86) | ProgramFiles64Folder (x64)
  • Product \ TargetPlatform = "3 : 0"(x86) | "3 : 1"(x64) | "3 : 2"(Itanium)

devenv.exe를 사용하여 별도의 msi 패키지를 만들려면 실제로이 두 가지 차이점 때문에 두 개의 별도 배포 프로젝트를 만들어야합니까?

은 내가으로 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

이 솔루션의 일을 내게 너무 다음 교체를 위해 내가 그런 다음 내 MSBuild에서 프로젝트가 거의 같은 모습 SDCTasks의 작업을 교체 파일을 사용했다. +1 –

관련 문제