2011-09-27 70 views
6

我有一個C++項目,設置爲/clr,C#項目在同一解決方案中引用該項目。不幸的是,似乎C++沒有得到正確的簽名,導致錯誤信息「程序集沒有強名稱」。 (sn.exe同意那個錯誤。)
但是,一個snk文件在項目設置中(Linker/Advanced),所以應該被簽名。此外,所有項目設置看起來都與同一解決方案中的另一個C++項目中的相同 - 在這裏一切正常。爲什麼我的C++程序集沒有簽名?

有一件事我撕我的頭髮在這幾個小時後發現:
當消除/NOLOGO開關接頭,很明顯的是,連接器調用兩次。我絲毫不知道爲什麼會這樣。
現在,在作品的鏈接被傳遞在調用命令行(/KEYFILE:)的SNK文件,在不工作的一個項目,第二次調用不獲得SNK文件通過。

爲什麼要調用鏈接器兩次?什麼決定它不會在第二次調用中傳遞snk文件?

回答

9

好吧,我找到了解決方案:顯然,MS吹VS2010的SP1版本,你必須去MSBUILD安裝文件夾中亂七八糟。 Here是一個提供骯髒細節的文章。

(爲什麼這會在一個項目上工作,而不是在其他的我不知道。而且,坦率地說,我已經失去了足夠的時間撞我的頭靠在這堵牆已經,並不會追究任何進一步)

+2

感謝您發佈此信息。你挽救了我幾個小時的頭髮。 – dss539

+0

@ dss539:謝謝你告訴我! – sbi

相關問題