为什么我的C++程序集没有签名?

sbi*_*sbi 6 c++ clr visual-studio-2010 assembly-signing

我有一个C++项目,设置为/clr,在同一解决方案中由C#项目引用.不幸的是,似乎C++没有正确签名,导致错误消息"程序集没有强名称".(sn.exe同意该错误.)
然而,就是在项目设置(链接/高级)的SNK文件,因此它应该签署.此外,所有项目设置似乎与同一解决方案中的另一个C++项目相同 - 一切正常.

我将头发撕裂了几个小时后发现的一件事:
当取消/NOLOGO链接器的开关时,很明显连接器被调用两次.我没有丝毫想到为什么会这样.
现在,在作品的链接被传递的命令行(SNK文件的项目/KEYFILE:的)调用,在一个,它工作,第二次调用并没有获得通过的SNK文件.

为什么要调用链接器两次?是什么决定它不会在第二次调用中传递snk文件?

sbi*_*sbi 9

好的,我找到了解决方案:显然,MS为VS2010吹了SP1版本,你必须在MSBUild安装文件夹中乱七八糟.是一篇提供肮脏细节的文章.

(为什么这会在一个项目中起作用,但在另一个项目中却没有.我坦率地说,我已经失去了足够的时间撞击这堵墙,并且不会进一步调查.)

  • 感谢发布此内容.你把头发拉了几个小时就救了我. (2认同)