2013-12-12 46 views
2

我在Windows 8.1上安裝了Office 2013和VS2013 - 當我現在打開引用版本12 PIA(用於Office 2007)的舊項目時,這些引用中缺少這些引用VS2013只安裝PIA的14和15版本。如何使用visual studio 2013註冊PIA12(Office 2007)程序集

因爲我想繼續使用PIA 12我不想更改引用。相反,我想用VS2013註冊版本12的PIA。我怎樣才能做到這一點?

我已經嘗試使用PIA可再發行,但它不想工作,除非我也安裝Office 2007(我不想)。我可以從其他系統獲得dll的副本,但是如何使用Visual Studio 2013註冊這些(我不需要它們在GAC中,我認爲,僅在VS2013中)。

就我所知的PIA而言,應該記錄一些COM類的ID,我只是不知道該怎麼做。

編輯:

眼下PIA的DLL只是名稱和指紋/公鑰(無提示路徑)引用。當我在VS2013中打開參考面板時,它們將顯示出來,可以選擇並工作。他們似乎在某個地方註冊,因此VS2013可以找到它們。我只是想在其他計算機上覆制它。

+0

你沒有想到未來。除非您安裝了該版本,否則當您的客戶端使用Office 2007時,您不會有機會診斷和修復代碼中的錯誤。請更改您的先決條件並要求用戶更新其Office版本或安裝您需要提供支持的Office版本。 –

+0

這只是幾個誰共享這個來源的計算機。而且我也不需要每臺計算機都需要Office 2007,因爲我也必須調試其他版本。 – Sam

+0

有趣的是:當我安裝VS2008時,即使沒有安裝Office 2007,這些舊的PIA也會在VS2013中註冊。但我不想安裝一個完整的老VS,我不需要只是爲了PIA。必須有一種方法來註冊它們,而不必安裝很多其他的東西。 – Sam

回答

4

我已經得到了完全相同的設置,一臺裝有Windows 8.1並且只安裝了Office 2013的機器。安裝Office 2007 PIA一點都不麻煩。請注意這是一個兩步過程。從Microsoft服務器下載PrimaryInteropAssembly.exe並啓動後,會提示您提供一個目錄來存儲中間文件。導航到該目錄,右鍵單擊o2007pia.msi文件,然後選擇安裝以實際註冊它們。

這不是讓他們進入你的機器的唯一方法。如果您有安裝了PIA的另一臺機器,則創建一個虛擬項目並將引用添加到您需要的Microsoft.Interop程序集中。選擇它們並確保「Embed Interop Types」屬性設置爲False,並將「Copy Local」屬性設置爲True。構建項目,您將在bin \ Debug目錄中獲得互操作程序集。將它們複製到您的機器並使用瀏覽按鈕添加對它們的引用。您總是希望在您的真實項目中將「Embed Interop Types」屬性設置爲True,因此您不必再將PIA部署到用戶計算機上。檢查他們與您的項目,所以你不會再失去他們。


更新:從.NET 4.0和VS2010開始,PIA已經過時。詳情請查詢this post

+0

當我運行o2007pia時。 msi我收到錯誤「請在安裝本產品之前安裝Microsoft Office 2007」(安裝了O2013)。 在本地複製文件將工作,但我需要改變項目,因爲我在源代碼上面寫的是在多臺計算機之間共享的,所以這不是一個好的選擇。 – Sam

+0

嘆息,這將需要拔牙。那麼,我們現在有一個文檔化的安裝嘗試和錯誤消息,我們還不知道什麼?這個2013版本的特別之處是什麼?它是64位的嗎? –

+1

@Sam'在本地複製文件將工作,但我需要改變項目,因爲我在上面寫的源碼是在幾臺計算機之間共享的,所以這不是一個好的選擇 - 爲什麼它不是一個好的選擇?當其他開發人員/個人電腦改變Office版本時,在源代碼控制中引用ref是否更好,因此沒有人碰到這個問題?你需要改變什麼項目的一部分? –

相關問題