2011-03-04 14 views
0

설치에 문제가 있습니다. 설치 프로그램은/codebase 옵션을 사용하여 regasm.exe .net com dll에 명령 줄 옵션을 실행합니다.x64 시스템의 msi에서 시작할 때 Regasm.exe가 설치에 실패합니다.

Setup.exe에서 설치 (installshield로 빌드)를 실행하면 모든 것이 정상적으로 작동합니다.

대신 .msi에서 설치를 실행하면 regasm 호출이 성공하지 못하고 아무것도 등록되지 않고 프로그램이 실행되지 않습니다.

이 문제는 x64 기반 시스템에만 영향을 미치는 것으로 보이며 x86 시스템에서는 두 가지 방법 모두 작동합니다.

어떤 아이디어가 문제 일 수 있습니까?

편집

문제는 관리자로 로그인 한 경우에도 MSI 관리자로 실행되지 않는 것 같다. 나는 여전히 UAC 대화 상자를 얻지 만, 마법사를 통해서만 볼 수 있습니다. setup.exe에서 시작하면 마법사가 나타나기 전에 UAC 패널이 나타납니다. .msi와 관리 명령 프롬프트를 실행하면 UAC 패널이 나타나지 않고 모든 것이 예상대로 작동합니다.

그래서 모든 것이 예상대로 작동하고 있다고 상상해보십시오. 그리고 사용자 정의 설치 작업을 올바르게 수행하려면 msi를 관리자 권한으로 실행해야합니다.

+0

아마도 순진에 대한 사용자 지정 작업을 설정

  • 을위한 행동하지만 당신은 두 가지 방법이 등/수정/액세스를 위해 동일한 권한을 가지고 있는지 확인합니다. 컴퓨터 작동? – tchrikch

  • +0

    @tchrikch, 아니요, 확실하지는 않지만 설치 프로그램이 msi (또는 이해할 수있는 방식)를 시작하기 때문에 다른 것으로 기대하지는 않습니다. 관리자로 로그인 한 상태입니다. –

    답변

    1

    This blog post은 설치 프로그램의 컨텍스트에서 관리자 권한으로 실행 파일을 실행할 필요성에 대해 설명합니다. 문제의 실행 파일이 다릅니다 (appcmd.exe 대 귀하의 경우 regasm.exe). 그러나 문제는 유사합니다.

    내가 당신에게 관련되어 있다고 생각 해당 게시물의 조각은 이것이다 :

    그것은 관리자 고도하지 않고, 기본적으로, 사용자 지정 작업은 설치를 시작한 사용자를 가장 밝혀 그 설치 자체 실행됩니다. 이는 CustomAction의 Impersonate 특성을 "no"로 설정하여 변경할 수 있습니다. 또한 Execute = "deferred"를 추가해야하므로 결과적으로 InstallFinalize 이전에 실행 된 사용자 지정 작업을 수행해야합니다.

    저는 InstallShield에 익숙하지 않지만 regasm.exe 실행되는 사용자 지정 동작을 표시하는 방법이 있는지 확인합니다. 당신은 (이 같은 일을 말하는 모든 다른 방법입니다) 다음 중 하나와 유사하게 표현한되는 설정할 수있는 옵션 (들)에 대한보고 싶어 :

    • msidbCustomActionTypeNoImpersonate 비트
    • 세트 설정 사용자 정의 "시스템 컨텍스트에서 지연된 실행" "아니오 가장과 지연된 실행"
    +0

    고맙습니다. 불행하게도 지금 우리가 간 해결책은 '설정 사용'이었습니다.exe to install '하지만 다음 릴리스에서이 메모를 작성 했으므로 새 설치 프로그램을 빌드 할 때이 정보를 사용할 수 있기를 바랍니다. 그때까지는 대답으로 표시 할 수 없지만 대답은 합리적으로 들리므로 내게서 +1합니다. –