簡體   English   中英

如何為多個Visual Studio版本創建單個VSIX擴展?

[英]How to create single VSIX extension for multiple Visual Studio version?

需要創建需要支持所有Visual Studio版本(2010年至2017年)的通用VSIX擴展。

我提到了以下鏈接來實現上述要求。

https://msdn.microsoft.com/en-us/magazine/mt493251.aspx

在那里,他們告訴在VSIX項目中使用Visual Studio包模板將包(轉到Visual Studio C#Items | Extensibility | VSPackage節點,選擇Visual Studio包模板並將其命名為MyPackage.cs)添加到VSIX項目但是我的visual studio沒有Visual Studio Package項目模板。 它只有Visual Studio AsyncPackage模板。 我在下面添加了我的視覺工作室詳情。

在此輸入圖像描述

Visual Studio舊版本只有“Visual Studio Package”選項,他們還建議現在使用AsyncPackage為多個Visual Studio版本創建一個通用包。 請在此處找到詳細信息。

https://developercommunity.visualstudio.com/content/problem/293478/visual-studio-package-template-not-available-on-sd.html

如果我在VSIX項目中添加了Visual Studio AsyncPackage,那么按照該過程,在VSIX項目編譯時面臨編譯錯誤。

在此輸入圖像描述

請提出解決方案的任何解決方案,或者以其他方式建議達到我的要求。

注意:我在vsixmanifest文件中使用VS2012和Visual Studio支持的版本創建了一個項目。 它僅在VS2012安裝的機器上工作。 請就此提出建議。

我是MSDN雜志文章的作者。 它是在Visual Studio包項目模板被Visual Studio Async Package項目模板替換之前編寫的。

即使您可以獲得模板(來自舊的VS版本),由於清單的三個不同版本(如文章中所述),因此無法使用單個VSIX從VS 2010定位到VS 2017。 最多,您可以從VS 2012定位到VS 2017。

但鑒於微軟推動在VS 2017 15.8和未來的VS 2019 16.0和16.1中使用異步軟件包(至少對於自動加載軟件包)(請參閱通過更新擴展的自動加載行為來提高關鍵方案的響應性 ),這是最好的面向未來的方法是為VS 2010-2013開發非異步軟件包,為VS 2015-2017開發另一個異步軟件包。 因為今天您的軟件包可能不需要自動加載(不需要異步軟件包),但未來它可能需要自動加載(然后您將被迫異步軟件包),或者微軟可能會決定在VS 2019 16.2甚至非-autoload包也必須是異步的...

注意:您可以使用示例Visual Studio 2013向后兼容的異步軟件包在VS 2013及更高版本上嘗試使用異步軟件包,但如果您還需要定位VS 2010和2012,則不值得。

底線:將時間集中在在必須創建的目標VS 2010-2019的兩個軟件包項目之間重用盡可能多的代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM