0

Dotfuscator Professional V4.8 (by PreEmptive Solutions) では、マージされた (リンクされた) 非プライマリ アセンブリのパブリック タイプを、マージされたアセンブリのパブリック タイプにすることはできますか?

つまり、アセンブリ A に Foo というパブリック型があり、アセンブリ B に Foo 型を含むシグネチャを持つパブリック メソッドがあるとします。A と B を C にマージした後、B をプライマリ アセンブリとして、Foo を C のパブリック タイプにしたいと考えています。

dotfuscator は常に型 Foo を C 内部に作成しているようです。

  • [System.Reflection.Obfuscation(Exclude=true)] を Foo 型に追加しようとしましたが、効果がないようです。
  • 新しい型が元のアセンブリの型と互換性がなくなることは気にしません。
4

1 に答える 1

3

注: 私は Dotfuscator チームで働いています。

これは起こらないはずです。私は2つの小さな例を作成しただけで、あなたが言及した動作を再現できませんでした. 私の基本的なセットアップは

Tester.exe (Primary Assembly, both merged into out.exe)
  References Library
  public class Program { public void Method(Foo foo) {} }
Library.dll
  public class Foo {}

Tester.exe (Primary Assembly, all 3 merged into out.exe)
  References LibraryA & LibraryB
LibraryA.dll
  public class Foo {}
LibraryB.dll
  References LibraryA
  public class C { public void Method(int x, Foo foo) {} }

どちらの場合も、Foo は公開されたままです。

あなたが説明している動作は、多くの場合、ユーザーが望んでいることですが、マージのために意図的にアクセシビリティ レベルを変更することはありません。

あなたの設定が私のものと何らかの形で異なっていたら教えてください。あなたの正確な再現を見てみたいです。可能であれば、support@preemptive.com に送信し、このスレッドを参照してください。ありがとう。

于 2011-01-19T19:40:25.650 に答える