2016-08-09 4 views
0

Ich versuche, mein COM-Add-In mit dem Befehl RegAm mit dem WIX-Setup zu registrieren. Aber ich kann es nicht tun. Es ist leer gegen die WixNetFxExtensionNETFRAMEWORK40FULLINSTALLROOTDIR oder sogar NETFRAMEWORK40CLIENTINSTALLROOTDIR. HierWIX-Eigenschaft NETFRAMEWORK40FULLINSTALLROOTDIR ist leer

ist der Code für die benutzerdefinierte Aktion:

<CustomAction Id="RegisterUsingRegAsm" Directory="PROOFIX_ADDIN" Execute="deferred" Impersonate="no" Return="check" 
       ExeCommand='"[NETFRAMEWORK40FULLINSTALLROOTDIR]regasm.exe" "[PROOFIX_ADDIN]Proofix.View.dll" /codebase' /> 

Wenn ich versuche, C:\Windows\Microsoft.NET\Framework\v4.0.30319\regasm.exe den Pfad zu codieren. Es funktioniert gut ...

und hier ist die Sequenzinformation:

<InstallExecuteSequence> 
    <Custom Action="RegisterUsingRegAsm" Before="InstallFinalize" /> 
</InstallExecuteSequence> 

Hier ist das Protokoll für den Installateur erzeugt:

Aktion: RegisterUsingRegAsm, Standort: C: \ Benutzer \ naveed.butt \ AppData \ Local \ Optimistor \ Proofix \, Befehl: "regasm.exe" "C: \ Benutzer \ naveed.butt \ AppData \ Local \ Optimer \ Proofix \ Proctix.View.dll" /Codebase

Antwort

1

Zunächst einmal sind Sie nicht ein PropertyRef

So:

<PropertyRef Id="NETFRAMEWORK40CLIENTINSTALLROOTDIR"/> 

Zweites Problem, wenn Sie auf einem 64-Bit-Windows sind, sollten Sie die 64-Bit-Variable verwenden:

NETFRAMEWORK40CLIENTINSTALLROOTDIR64 

Allerdings können Sie 32/64 Bit Windows OS mit Bedingungen umgehen. Sie können sich von dieser Antwort inspirieren lassen: https://stackoverflow.com/a/12514596/600559

+0

Ich habe versucht, die Eigenschaft hinzuzufügen, aber es hat nicht funktioniert. Die einzige Sache, die ich nicht versuchte, war '64 Bit'-Laufzeit, weil, obwohl mein Betriebssystem 64 Bit ist, aber auch 32 Bit Laufzeit darauf installiert ist. Die Frage ist also, ob ich wirklich die 64-Bit-Laufzeit ändern muss? –

+0

Bei der Installation (eine 32-Bit-App) - auf einem 64-Bit-Betriebssystem müssen Sie NETFRAMEWORK40FULLINSTALLROOTDIR64 und NETFRAMEWORK40CLIENTINSTALLROOTDIR64 verwenden –