我已經開發了一個大型的Office應用程序級插件,它的工作原理就像一個魅力,但我在理解技術基礎方面存在問題。VSTO與主互操作程序集有什麼不同?
- 那麼究竟什麼是VSTO和PIA的好?
- 是否VSTO剛剛爲Visual Studio提供了一個合適的項目類型,就是這樣嗎?
- 主互操作程序集(PIA)只是某種包裝用於訪問Office對象模型?
- 他們都提供比我意識到的更多的東西和功能嗎?
我已經開發了一個大型的Office應用程序級插件,它的工作原理就像一個魅力,但我在理解技術基礎方面存在問題。VSTO與主互操作程序集有什麼不同?
VSTO is the application runtime,其經由PIA提供掛鉤(溶液裝載機)到Office子系統。 PIAs are wrappers圍繞Office構建的非託管COM API(IDTExtensibility2
)。 PIA提供託管訪問權限並運行在VSTO運行時之上。
VSTO帶有構建deployment manifest的項目類型,它們用於檢測依賴關係並在運行時加載加載項。
的PIAs provide managed access的COM對象模型,但它也應該supports unmanaged access您想對您的解決方案是如何裝載更多的控制權(因此你總是有VSTO運行,但並不總是PIA的)。
這MSDN link provides a great overview of the evolution of PIAs and VSTO從IDtExtensibility2
遠離這是另一個裝載選項(PIA的外)
@SilverNinja不VSTO需要PIA安裝? – JohnZaj
如果您使用的是VSTO 2010,則無需安裝PIA。默認情況下,[interop類型嵌入在您的加載項程序集中](http://msdn.microsoft.com/zh-cn/library/ee317478.aspx)。您可以通過更改您所包含的每個辦公部件的** Embed Interop Types **標誌來切換此行爲。 – SliverNinja
感謝您確認SilverNinja。我以爲是這樣。我看到嵌入在加載項中的interop。我只需要確保所有其他程序集都設置了嵌入互操作類型標誌。 – JohnZaj