2011-04-26 61 views
8

我們有一個項目,所有組件都有延遲簽名。開發機載使用sn.exe工具來跳過驗證:如何使用nunit單元測試延遲標誌組件

sn.exe -Vr *,PUBLIC_KEY_TOKEN_HERE 

如果我們測試使用NUnit(GUI版本),因爲延遲簽名的那些組件,測試將無法正常工作(所有的測試都失敗)。但是如果這些組件被重新簽署,測試就會起作用。我們都知道要重新簽署一個程序集,我們需要私人公鑰對文件(例如mycompany.snk)。我們認爲這是一個不錯的做法,向所有開發人員提供mycompany.snk文件。

是否有任何解決方案,以便每個開發人員都可以單元測試他們的程序集而不需要重新提交或不需要mycompany.snk文件?

+1

問題只是GUI跑步者? CLI runner不起作用嗎?我問,因爲我正在做同樣的事情(延遲簽名)所有我的程序集,使用sn.exe跳過驗證,並且可以使用CLI runner運行NUnit測試。我遠離GUI亞軍,所以我不知道我是否有同樣的問題。可以嘗試,如果你想。 – harlam357 2011-11-16 15:03:59

+0

我只在GUI跑步機上測試。根據你的評論,這似乎只存在於GUI亞軍上。 – 2011-11-16 15:24:56

回答

3

您是否有機會在64位版本的Windows上開發?前一段時間我們遇到過類似的問題,那就是延遲簽名程序集,但在單元測試期間它們沒有正確加載。問題原來是因爲我們正在開發64位窗口。事實證明,有兩個sn.exe程序,一個用於32位和一個用於64位。 (64位版本位於windows SDK下32位可執行文件的bin目錄下的目錄「x64」中 - 目前我不在開發機器上,對不起,所以我無法給你準確的路徑記憶)。我們所做的是使用32位版本的「sn -Vr」命令,然後使用64位版本運行相同的命令,一切正常。