在Windows 8消费者预览版上使用Visual Studio 11测试版。
问题是:如果尝试使用输出类型设置为WinMD的类库中的类,我会得到一个安全异常,指出“强名称验证”失败(来自HRESULT0x8013141A的异常)。我只是想用Visual Studio运行(F5)一个小的测试应用程序。
如果我将输出类型设置为"Class Library“,这个问题就会消失。可以在这里找到一个小的(并且相当琐碎的)测试项目:
http://download.tallcomponents.com/WinRTApplication3.zip
我已经使用一个新生成的.snk文件(没有密码)为类库设置了"Sign the Assembly“标志。在生成的ClassLibrary1.winmd文件上运行sn -vf会显示:
ClassLibrary1.winmd是延迟签名或测试签名的程序集
因此,也许问题基本上是输出没有“正确”签名?我只是不知道如何解决这个问题,因为我已经指定了要签名的类库,我也不明白为什么只有在输出到WinMD文件时才会发生这种情况。在这一点上,我假设我不需要“官方”证书来进行调试和测试。
好吧,如果这是一个初学者的问题,我很抱歉。我试着用" google“搜索答案,但我得到的结果主要是两年前的结果,谷歌建议用"wind”而不是“winmd…”。
甚至无法在…中创建新标记"winmd“(没有足够的声誉)
发布于 2012-05-15 13:00:21
如果在winmd文件上遇到强名称验证错误,通常是因为您使用的工具集不理解.winmd文件格式。
不能对.winmd文件进行强名称签名。
在这种情况下,问题可能是因为您试图对组件库进行强名称签名- C#组件库会生成包含Windows元数据和C# IL的混合.winmd文件。
为什么要尝试对组件进行强名称签名?强名称签名通常用于将程序集放入GAC中,并且无法将.winmd文件插入到GAC中。
https://stackoverflow.com/questions/10581658
复制相似问题