我在我的C#程序集上使用構建後步驟來公開我的dll函數簽名。此步驟使用http://www.codeproject.com/KB/dotnet/DllExport.aspx的ExportDll工具。但是,如果我通過MSTEST運行我的DLL,並試圖獲得一個代碼覆蓋率報告,我得到以下錯誤:如何在ExportDll通過ildasm/ilasm運行後獲取代碼覆蓋率?
Instrumentation error while trying to process the file MyAssembly.dll
Error VSP1011 : Unable to obtain debug information. Link with the /Profile linker switch.
這是奇怪的,考慮到存在大會沒有非託管代碼(比其他幾個P /調用簽名)。如果我採取後構建步驟,我的代碼正確安裝,我可以得到一個代碼覆蓋率報告。因此,我只能斷定它必須是這個後構建步驟,而不是代碼本身。
我在構建和分發後ExportDll版本時,傾向於通過非ExportDll版本的代碼運行我的單元測試。由於我主要關心代碼是否被測試,而不是其他組件可以通過DLL導出找到函數,所以我不認爲這是一個糟糕的解決方案。然而,我覺得這可能是構建管理的噩夢,必須向團隊解釋「使用這個組件,而不是組裝」。
有沒有人有經驗單元測試已通過此工具運行的DLL?或者是否有人有過使用ildasm/ilasm編譯,反編譯和重新組裝的程序集的經驗?