2012-12-05 22 views
6

Sto provando a creare un programma di installazione 32/64bit tutto in uno. L'unica cosa che è diversa su una macchina a 32 bit rispetto a una macchina a 64 bit è una chiamata a RegAsm.exe. Per una macchina a 64 bit il codice deve guardare il framework a 64 bit e per un 32 bit guarda al framework standard.Errori Inno Setup RegAsm.exe

32bit: "c: \ windows \ microsoft.net \ quadro" 64bit: "C: \ windows \ microsoft.net \ Framework64";

Ho il mio pacchetto di installazione per eseguire le azioni di installazione. Per la mia azione a 64 bit ho l'abilitazione per IsWin64.

Nome file: {dotnet4064} \ Regasm.exe; Parametri: "" "mydll.dll" "/ codebase"; WorkingDir: {app}; StatusMsg: "Registrazione componente aggiuntivo"; Flags: RunHidden; Verifica: IsWin64;

Diverse linee del file di log prima che l'errore

2012-12-05 14:58:53.233 Installing the file. 
2012-12-05 14:58:53.281 Successfully installed the file. 
2012-12-05 14:58:53.281 -- Icon entry -- 
2012-12-05 14:58:53.281 Filename: C:\Documents and Settings\All Users\Start Menu\Programs\myprogram\my program\Uninstall myprogram.lnk 
2012-12-05 14:58:53.281 Creating directory: C:\Documents and Settings\All Users\Start Menu\Programs\myprogram\my program 
2012-12-05 14:58:53.483 -- Icon entry -- 
2012-12-05 14:58:53.483 Filename: C:\Documents and Settings\All Users\Start Menu\Programs\myprogram\my program\myprogram.lnk 
2012-12-05 14:58:54.224 -- Icon entry -- 
2012-12-05 14:58:54.224 Filename: C:\Documents and Settings\All Users\Desktop\myprogram.lnk 
2012-12-05 14:58:54.281 Fatal exception during installation process (Exception): 
          Internal error: Cannot run files in 64-bit locations on this version of Windows. 
2012-12-05 14:58:54.281 Exception message: 
2012-12-05 14:58:54.281 Message box (OK): 
          Internal error: Cannot run files in 64-bit locations on this version of Windows. 
2012-12-05 14:58:54.926 User chose OK. 
2012-12-05 14:58:54.926 Message box (OK): 
          Setup was not completed. 

          Please correct the problem and run Setup again. 
2012-12-05 14:59:00.222 User chose OK. 
2012-12-05 14:59:00.222 Rolling back changes. 

Tutto questo funziona bene su una macchina a 64 bit. In una macchina a 32 bit ottengo un errore:

Errore interno: Impossibile eseguire i file in posizioni a 64 bit su questa versione di Windows

Sono stato tutta la documentazione di aiuto e Google e non può bloccare una ragione per cui questo sta accadendo. Qualsiasi aiuto è apprezzato.

[Run] 
Filename: "{dotnet40}\Regasm.exe"; Parameters: "My.TaskPane.dll"; WorkingDir: "{app}"; Flags: runhidden; StatusMsg: "Registering MyTaskPane Add-In" 
Filename: "{dotnet4064}\Regasm.exe"; Parameters: "My.TaskPane.dll"; WorkingDir: "{app}"; Flags: runhidden; StatusMsg: "Registering My TaskPane Add-In"; Check: IsWin64 
Filename: "{dotnet40}\Regasm.exe"; Parameters: "My.TaskPane.dll /codebase"; WorkingDir: "{app}"; Flags: runhidden; StatusMsg: "Registering My TaskPane Add-In" 
Filename: "{dotnet4064}\Regasm.exe"; Parameters: "My.TaskPane.dll /codebase"; WorkingDir: "{app}"; Flags: runhidden; StatusMsg: "Registering My TaskPane Add-In"; Check: IsWin64 
Filename: "{app}\My Software Suite.exe"; Parameters: "/register"; WorkingDir: "{app}"; Flags: PostInstall; Description: "Register the My Software Suite" 

ho risolto questo con l'aggiunta: ArchitecturesInstallIn64BitMode = x64 e quindi utilizzando Check: Is64BitInstallMode

+0

Prendere un registro di installazione e mostrare le linee pertinenti prima si verifica l'errore. – jachguate

+0

Questa è la risposta dal registro. Non dice nulla in realtà oltre l'errore menzionato nella finestra di dialogo. 2012-12-05 14: 58: 54.281 Eccezione irreversibile durante il processo di installazione (eccezione): Errore interno: impossibile eseguire file in posizioni a 64 bit su questa versione di Windows. 2012-12-05 14: 58: 54.281 Messaggio di eccezione: 2012-12-05 14: 58: 54.281 Casella di messaggio (OK): Errore interno: impossibile eseguire file in posizioni a 64 bit su questa versione di Windows. 2012-12-05 14: 58: 54.926 L'utente ha scelto OK. – user1879966

+0

Il valore basso mostra che il programma di installazione sta eseguendo RegAsm.exe che non dovrebbe eseguire? – jachguate

risposta

2

ho risolto questo con l'aggiunta: ArchitecturesInstallIn64BitMode = x64 e quindi utilizzando Check: Is64BitInstallMode

Problemi correlati