我有其在2010年VS創建據公開爲COM(ATL)一個C++ DLL項目不合格。我用這個DLL到另一個.NET項目作爲參考。 C++項目連接器設置設置如下:COM DLL登記TFS 2010
"Register Output" = Yes "Per-user Redirection = Yes
我創建了一個生成定義建立在TFS這兩個項目2010年C++項目的基礎很好,但因爲C++項目的輸出DLL沒有註冊.NET項目失敗。設置爲「每用戶重定向」= false不起作用。我也嘗試使用WF活動'InvokeProecss'來註冊使用Regsrv32 /批處理文件/我自己的EXE等C++ DLL,但我得到退出代碼5.我的TFS 2010是在Windows 2008 Server R2中。我想,它並不像管理員那樣運行這個過程。
如果我使用生成一個TLBIMP互操作DLL,然後我指在我的.NET proejct是互操作,它工作正常(oviously在TFS生成,我需要添加InvokeProecss調用TLB)。但這是不可接受的,因爲我們的一般做法是直接從.NET項目引用COM DLL。
任何人可以請幫助這件事嗎?
是否有一種方式來運行自動構建活動「InvokeProcess」以管理員身份的TFS不提示用戶名/密碼?
參照直接一個COM DLL是不可能的,tlbimp.exe是總是需要。在構建服務器上註冊COM服務器是一種可怕的做法,只會產生註冊表污染。沒有必要。只需運行tlbimp.exe,不需要管理員權限。 –