もう一度私は問題に悩まされています。それはおそらく解決しやすいでしょう。
インストールしたプログラムの設定ファイルを変更するために、WiXで作成された設定を拡張したいと考えています。これを行うために、CustomActionを作成しました。設定ファイルを変更できるようにするには、私はCustomActionの中でその(インストール)場所を知る必要があります。したがって、INSTALLLOCATIONとファイル名をCustomActionに渡してみます。ここに問題があります。CustomActionData -Attributeは常に空で、セットアップによって例外がスローされます。WiX CustomActionDataが呼び出されたCustomActionで空です
私のCustomActionはC#DLLファイルです:DemoDatumErzeugen.CA.dll
です。このファイルには、コンフィグレーションファイルを変更するメソッドDatumEintragen
が含まれています。私はこの方法でデータにアクセスしようとしています。
string path = session.CustomActionData["LOCATION"];
これは例外がスローされる場所です。私はドイツ語のエラーメッセージしか持っていませんが、それは行に沿って何かを言う:The supplied key was not found in the dictionary
(Der angegebene Schlüssel war nicht im Wörterbuch angegeben.
)。
これは私が私のカスタムアクションに私のセットアップ・スクリプトからプロパティを渡してみてください方法です:
<Binary Id="DemoDatumEinrichtenCA" SourceFile="DemoDatumErzeugen.CA.dll"/>
<CustomAction Id="DemoDatum.SetProperty" Return="check" Property="DatumEintragen" Value="LOCATION=[INSTALLLOCATION];NAME=StrategieplanConfig.xml;"/>
<CustomAction Id="DemoDatum" BinaryKey="DemoDatumEinrichtenCA" DllEntry="DatumEintragen" Execute="deferred" Return="check" HideTarget="no"/>
<InstallExecuteSequence>
<Custom Action="DemoDatum.SetProperty" After="InstallFiles"/>
<Custom Action="DemoDatum" After="DemoDatum.SetProperty"/>
</InstallExecuteSequence>
私はそれは同じ方法または少なくとも非常に類似したに行われた多くの例を見てきました。私は多くのことを試しましたが、何も値を変更するのに役立たないようです。<Custom Action="DemoDatum.SetProperty" After="InstallFiles"/>
の後。 CustomActionDataは常にゼロです。
私はそれをチェックします:session.CustomActionData.Count
もう一度私は何か間違ったやり方をした助けやヒントについてはかなり感謝しています。
実際に!それはそれだった。大いに感謝する。見落とすのは簡単です。 – Skalli
@Yan Sklyarenko私はbootstraperアプリケーションを使用して作成した私の.exeのインストール中に問題に直面しています。あなたはこれを調べて、助けてくださいhttp://stackoverflow.com/questions/27151665/error-0x80070643-fatal-error -during-installation-wix – user2725407