.net C++/CLI模糊程序集引发MissingManifestResourceException

.net C++/CLI模糊程序集引发MissingManifestResourceException,.net,visual-studio-2012,c++-cli,obfuscation,dotfuscator,.net,Visual Studio 2012,C++ Cli,Obfuscation,Dotfuscator,我正在使用Dotfuscator Pro 4.10来混淆使用VS 2012构建的应用程序。NET代码包含托管和非托管C++/CLI代码,因此使用/clr编译 我的解决方案包含很多项目。我只允许重命名为模糊处理。此外,由于所有程序集/应用程序都在dotfuscator项目中,因此我不以库模式运行。因此,所有接口都被置乱 当我混淆程序集时,除了一个程序集(让我们称之为A.dll)之外,一切都正常。如果我禁用了对.dll的模糊处理,则应用程序可以正常工作。如果为.dll启用模糊处理,则会得到以下结果:

我正在使用Dotfuscator Pro 4.10来混淆使用VS 2012构建的应用程序。NET代码包含托管和非托管C++/CLI代码,因此使用/clr编译

我的解决方案包含很多项目。我只允许重命名为模糊处理。此外,由于所有程序集/应用程序都在dotfuscator项目中,因此我不以库模式运行。因此,所有接口都被置乱

当我混淆程序集时,除了一个程序集(让我们称之为A.dll)之外,一切都正常。如果我禁用了对.dll的模糊处理,则应用程序可以正常工作。如果为.dll启用模糊处理,则会得到以下结果:

错误:System.Resources.MissingManifestResourceException

消息:找不到任何适合指定区域性或非特定区域性的资源。确保“ahe.resources”在编译时已正确嵌入或链接到程序集“A.dll”,或者所需的附属程序集是可加载的并已完全签名

ahe是a.dll中窗口窗体的加扰名称,在此处引发异常(来自ApplyResources()):

在A.resx中正确定义了资源(并且在混淆之前可以工作)

请注意,这种代码在其他程序集中的许多地方都有使用,当我不允许对有问题的程序集A.dll进行模糊处理时,它可以完美地工作

那么,有人知道如何解决这个问题吗?请随意询问更多信息/细节,我不知道什么可能重要或不重要

谢谢


编辑1:没有对任何程序集进行签名。

检查.vcxproj文件中的根命名空间是否正确:

<RootNamespace>YourNameSpace</RootNamespace>
YourNameSpace
斯科特在 此问题在Dotfuscator的知识库中解决,该知识库仅适用于社区版的注册用户:
.

重命名混淆会破坏使用反射的逻辑。这可能就是这里发生的事情。也许您可以将属性应用于单个类或类似类,以保留其名称。反射。。。嗯,我正试图在我的代码中找到反射问题。
<RootNamespace>YourNameSpace</RootNamespace>