Примечание: я работаю в команде 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 и ознакомьтесь с этой веткой. Спасибо.