2011-01-19 7 views
0

Dotfuscator Professional V4.8(PreEmptive Solutions)を使用すると、マージされた(別名リンクされた)非プライマリアセンブリからパブリック型をマージされたアセンブリにすることは可能ですか?Dotfuscatorとマージされたアセンブリの型

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

の公共のタイプになりたいことはdotfuscatorは常にC.

  • への内部はFooを入力しますと思われます私は [System.Reflection.Obfuscation(Exclude = true)] を入力してFooを入力しようとしましたが、 の効果がないようです。
  • 新しいタイプの は元の アセンブリのタイプと互換性がありません。

答えて

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のは、公共のまま。

あなたが記述している動作は、しばしば起こりたいことですが、私たちは合併のためにアクセシビリティレベルを意図的に変更していません。

設定が私と何らかの形で違っていた場合はお知らせください。私はあなたの正確なレプロを見るのに興味があります。できる場合は、[email protected]に送ってこのスレッドを参照してください。ありがとう。

+0

完了、ありがとうございます。 – mpeac

+0

私たちのビルド環境では、すべてのマージドタイプを非公開にしているドットフリーザーの後にサイレントMSBuildタスクが実行されています。迅速かつ役立つサポートのためにdotfuscatorチームに感謝します。特に、彼らは "-e"オプションを使用して、点検係が点検のために生成されたILファイルを残すように提案しました。 – mpeac

関連する問題