MSM をビルドしようとしたときに、この問題に遭遇しました。どうやら、モジュールのプロパティ (およびそのすべての識別子) は、モジュールの生成中に名前の末尾にモジュール GUID を追加することによって名前が変更されます。たとえば、プロパティ「MY_PROPERTY」は「MY_PROPERTY.803A3089_928F_46F1_BBAE_CBD39A7D6A72」に名前が変更されます (803A3089-928F-46F1-BBAE-CBD39A7D6A72 がモジュール GUID であると仮定)。これは、同じ名前の識別子を使用しようとする複数のモジュール間の競合を防ぐために使用されるメカニズムだと思います。
MSM 内から、特定のプロパティに何らかの値を設定する必要がある DLL カスタム アクションを呼び出す必要があります (「THE_PROPERTY」と呼びましょう)。問題は、THE_PROPERTY の名前が上記のように THE_PROPERTY.803A3089_928F_46F1_BBAE_CBD39A7D6A72 に変更されるため、カスタム アクションがプロパティを見つけられず、失敗することです。
この問題を解決する方法はありますか? カスタム アクションを変更して、それが呼び出されているモジュールの GUID を (何らかの方法で) 把握しようとすることを考えていました。これを行う 1 つの方法は、現在のアクション名を確認することです。これには、GUID も含まれている必要があります。しかし、カスタム アクション内から現在のアクション名を取得できますか? 別の解決策を考えられますか?
ありがとう!