2012-04-10 6 views
2

私はWiX 3.5を次のように使用しています。TempFolderからWiX EXE CustomActionを実行

インストールの最初に(EULAが表示される前に)TEMPフォルダに抽出する必要のあるファイル(EXEおよびDLL)があります。その後EXEを実行します。私はhttp://msiext.codeplex.com/を使ってファイルを抽出する部分を持っています。

<CustomAction Id="SetBinaryWrite_TargetFileName_1" Property="BINARYWRITE_TARGETFILENAME" Value="[TempFolder]ActivationUtility.exe" /> 

[TempFolderの](Windows 7で)使用されていることに注意してください "C:\ Users \ユーザーUSERNAME \のAppData \ローカル\ Tempには\" に解決されます、これは「セットではありません、これは次のようなコードに見えますどこにでも私のWXSファイルの「アップ - それはなどProgramFilesFolderの、のように、Windowsのプロパティです...

私はこのような私のEXEのCustomAction設定:

<CustomAction Id="ActivationUtility" 
        Directory="TempFolder" 
        ExeCommand="ActivationUtility.exe" 
        Execute="immediate" Return="check" /> 

リンカはその後、文句:エラーLGHT0094:未解決の参照を「Directory:TempFolder」をシンボルに追加します。私が "[TempFolder]"を使用すると、コンパイラは不平を言う。このプロパティは、1つのCustomActionでは動作しますが、別のCustomActionでは動作しないのはなぜですか?上記のCustomActionのTempFolderを参照するには、正確に何が必要ですか?

答えて

2

次のコードは、(今それをテストすることはできません)

ルートdirectoy

<Directory Id="TempTest" FileSource="[TempFolder]"></Directory> 

の下にこれを追加し、この

<CustomAction Id="ActivationUtility" 
       Directory="TempTest" 
       ExeCommand="ActivationUtility.exe" 
       Execute="immediate" Return="check" /> 

などのカスタムアクションを宣言する私のためにコンパイルしますもちろん、あなたのフォルダのIDを変更することができます

+0

ありがとう - 私はついにそれを考え出しましたなぜ彼らは[TempFolder]をDirectory =で動作させていないのか理解できません。 – wade

関連する問題