0

現在、WiX インストーラーで使用するためにエクスポートする DLL のカスタム アクションに取り組んでいます。最近、インストーラーを実行したときにログに次のエラーが見つかりました。

<exported_name_cut_off>: Error 0x8007007a: Failed to copy CustomAction log name: <exported_name_NOT_cut_off>

私は Windows プログラミングと Wix に比較的慣れていないので、エラー メッセージで DLL 関数名が切り捨てられていることに気づいたとき、DLL でエクスポートされる関数名には 31 文字という制限があるはずだとすぐに思いましたが、明らかにそうではありません。 ; これは、私が気付いていなかった WiX の制限であることが判明しました。

そこで、ここで 2 つの質問があります。

  1. DLL でエクスポートまたはインポートされる関数名の長さに制限はありますか? MSDN のヘルプでこれについての言及を見つけることができませんでした。関連する場合、私は C++ でコーディングし、Windows 7 x64 で Visual Studio 2010 を使用しています。

  2. 私はこれを見つけましが、残念ながら、WiX にこのような制限がある理由については、適切な回答がありませんでした。このように制限されている理由を知っている人はいますか?3.5.2519 (私が使用しているバージョン) より後の WiX バージョンでも同様ですか?

4

1 に答える 1

3

WcaInitialize に渡す名前を制御します。実際の関数名やカスタム アクション名である必要はないので、必要に応じて短くすることができます。WcaLog* 関数はこれをログの前に付けるために使用するため、重要ではありません。必要に応じて NULL を渡すこともできます。

この制限は、WiX v3.6 および v3.7 ベータ ビルドにも存在します。

于 2012-10-11T22:22:21.430 に答える