VS2015压缩元数据流中的非法表

时间:2016-08-01 20:52:33

标签: c# .net visual-studio visual-studio-2015

我们正在尝试从Visual Studio 2012升级到2015年。我们遇到的唯一错误是

  无法打开xyzRenamed.dll - 压缩的非法表   元数据流。

我们在2012年使用这个客户提供的api dll几年没有任何问题。有谁知道为什么2015年对dll不满意,而2012年工作正常?有什么方法可以避免它吗?

3 个答案:

答案 0 :(得分:5)

可能是您的某个DLL被混淆了,特别是名为Confuser Ex的FOSS项目。该项目可以在Visual Studio中使用(作为插件)来混淆代码。使用该工具时,您可以选择保护层。您可以使用部分或全部图层。在编译的DLL中创建无效元数据的保护是创建此奇怪错误的保护。

您可以在VisualStudio->Tools->Settings->ConfuserEx的VS设置中生成模糊dll时停用无效的元数据保护。

如果您没有创建库,则需要进一步调查,可能使用Visual Studio 2015之外的其他内容来编译项目。

答案 1 :(得分:1)

删除

 A  | B
 0  | 4
 1  | 6
 2  | 0
 3  | 0
 4  | 4
 5  | 0
 6  | 7

来自CRPROJ文件。

答案 2 :(得分:0)

事实证明,客户通过无效的元数据策略对其DLL进行了模糊处理。具体来说,他们使用的是ConfuserEx。这似乎适用于VS2012,但VS2015没有它。以下是ConfuserEx关于该问题的错误报告,它基本上被视为预期行为。 https://github.com/yck1509/ConfuserEx/issues/313

我们能够让他们重建DLL而不需要这种类型的混淆,它工作正常。

我目前还没有意识到我们可以修改我们的VS解决方案来使用混淆文件。如果您知道某种方式,那么请将其发布给其他不够幸运的人,以便能够获得他们依赖的非模糊版本。