2014-04-15 39 views
1

我有一個C#項目和C++項目的.net解決方案。 C++項目是一個自動化服務器(.exe)。 C#項目引用由C++項目(.tlb或機器上的註冊接口)生成的ActiveX接口。這在開發機器上效果很好,因爲我在C++項目的後期構建事件中使用regtlibv12.exe註冊了.tlb。在構建機器上,這會失敗,因爲運行構建的服務無權更新註冊表。在構建機器上註冊.tlb的首選方法是什麼?

運行自動構建的服務是否以管理員身份運行通常是?是否有另一種首選的方法來做到這一點?

我也讀過,regtlibv12.exe並不總是安裝。有沒有另外一種方法可以註冊.tlb?

+0

它的C++項目是在相同的解決方案,那麼你沒有問題。構建服務器將構建項目,獲取組件註冊,然後您的C#項目將愉快地構建。顯然你正在做其他事情,不清楚是什麼。可能是構建順序問題。 –

+0

如果在構建機器上使用regtlibv12.exe註冊了類型庫,C++項目完成構建後會怎麼樣? – denvercoder9

回答

0

我發現沒有其他的方式來登記比使用其他regtlibv12.exe構建過程的類型庫。我必須確保自動構建服務是管理員,並且一切正常。

0

在C#項目中,檢查C++應用程序(自動化服務器)是否正在運行,如果沒有運行則運行它。

然後自動化服務器文件(.exe)將登記所有可用的CLSID在系統

相關問題