1

我正在編寫一個引用Microsoft.VisualStudio.VCProjectEngine程序集的Visual Studio擴展。當Visual Studio擴展使用對舊程序集的引用時,類型轉換失敗

現在我想從EnvDTE.Project轉換爲Microsoft.VisualStudio.VCProjectEngine.VCProject這樣的:建立並運行我在Visual Studio 2015年擴展時同時使用VCProjectEngine裝配的14.0版本

VCProject vcProject = project.Object as VCProject;

該投工作正常。然而,當我將版本更改爲12.0時,演員失敗,因此我的擴展也可以安裝到VS2013。我必須在這裏失去一些東西。

如何引用VCProjectEngine程序集以便我的類型轉換在VS2013和VS2015中運行?

+0

你用下Common7 \ IDE \ PublicAssemblies隨VS 2013 Microsoft.VisualStudio.VCProjectEngine.dll參考?我知道這個程序集針對不同的VS版本確實有不同的版本,其他社區成員之前也遇到了兼容性問題:https://social.msdn.microsoft.com/Forums/vstudio/en-US/d82a07ed-a3b9- 4321-abb0-a72cb78f9c6e/vcprojectengine-for-different-vs-versions?forum = vsx,這意味着某些對象類型在更高版本中被更改。如果可能的話,我建議你在VS2013中創建一個新的。 –

+0

@ JackZhai-MSFT:謝謝你的指針。是的,我嘗試使用VS2013附帶的組件。在這種情況下,當在VS2015中運行擴展時,類型轉換失敗,但是當我將相同的擴展安裝到VS2013並運行它時,一切正常。 你是什麼意思_「我建議你在VS2013中創建一個新的」_? –

+0

只是忽略它,實際上我的意思是如果擴展在不同的VS版本中有兼容性問題,創建單獨的項目會更好。只是爲了清楚地說明這個問題,現在使用正確的程序集之後,VS2013中已經解決了這個問題?我對嗎?如果是這樣,我會發布該解決方案作爲答案:) –

回答

相關問題