提问人:sbi 提问时间:9/27/2011 更新时间:9/27/2011 访问量:1423
为什么我的 C++ 程序集没有签名?
Why isn't my C++ assembly signed?
问:
我有一个 C++ 项目,设置为 ,由同一解决方案中的 C# 项目引用。不幸的是,似乎 C++ 没有得到正确的签名,导致错误消息“程序集没有强名称”。(同意该错误。
但是,项目设置(Linker/Advanced)中有一个 snk 文件,因此应该对其进行签名。此外,所有项目设置似乎都与同一解决方案中的另一个 C++ 项目中相同 - 一切正常。/clr
sn.exe
在为此扯了几个小时的头发后,我发现的一件事是:
当消除链接器的开关时,很明显链接器被调用了两次。我完全不知道为什么会这样。
现在,在有效的项目中,链接器在命令行 () 中为两个调用传递了 snk 文件,在不起作用的项目中,第二个调用没有传递 snk 文件。/NOLOGO
/KEYFILE:
为什么链接器会被调用两次?是什么决定了它没有在第二次调用中传递 snk 文件?
答:
9赞
sbi
9/27/2011
#1
好的,我找到了解决方案:显然,MS 破坏了 VS2010 的 SP1 版本,您必须在 MSBUild 安装文件夹中搞砸。这是一篇给出肮脏细节的文章。
(我不知道为什么这会在一个项目中起作用,但在另一个项目中不起作用。而且,坦率地说,我已经浪费了足够多的时间用头撞这堵墙,并且不会进一步调查。
评论
2赞
dss539
6/29/2012
感谢您发布此内容。你把我从几个小时的拔头发中拯救出来。
评论