[英]Dotfuscator and types from merged assemblies
With Dotfuscator Professional V4.8 (by PreEmptive Solutions), is it possible to make a public type from a merged (aka linked) non-primary assembly a public type of the merged assembly? 使用Dotfuscator Professional V4.8(由PreEmptive Solutions提供),是否可以将合并(又称为链接)非主程序集中的公共类型设为合并程序集的公共类型?
That is, suppose assembly A has a public type called Foo, and assembly B has some public method with a signature that includes type Foo. 也就是说,假设程序集A具有称为Foo的公共类型,而程序集B具有某些公共方法,其签名包括类型Foo。 After merging A and B into C, with B as the primary assembly, I'd like Foo to be a public type of C.
在将A和B合并到C中并将B作为主要程序集之后,我希望Foo成为C的公共类型。
It seems that dotfuscator always makes type Foo internal to C. 似乎dotfuscator总是使Foo类型成为C的内部。
Note: I work on the Dotfuscator team. 注意:我在Dotfuscator团队工作。
This should not be happening. 这不应该发生。 I just made 2 small examples and could not reproduce the behavior you mention.
我仅举了两个小例子,无法重现您提到的行为。 My basic setups were
我的基本设置是
Tester.exe (Primary Assembly, both merged into out.exe)
References Library
public class Program { public void Method(Foo foo) {} }
Library.dll
public class Foo {}
and 和
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) {} }
In both cases, Foo remains public. 在这两种情况下,Foo都保持公开状态。
The behavior you are describing is often what users want to happen, but we do not knowingly change any accessibility levels because of merging. 您描述的行为通常是用户想要发生的事情,但是由于合并,我们不会故意更改任何可访问性级别。
Please let me know if your setup was somehow different than mine. 如果您的设置与我的设置有所不同,请告诉我。 I'd be interested to see your exact repro.
我很想看看您的确切复制。 If you're able, please send it to support@preemptive.com and reference this thread.
如果可以,请将其发送至support@preemptive.com并引用此线程。 Thanks.
谢谢。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.