簡體   English   中英

如何構建針對Visual Studio 2010-2017的Visual Studio擴展(VSIX)

[英]How do I build a Visual Studio Extension (VSIX) that targets Visual Studio 2010-2017

我們的構建環境是VS 2015(理想情況下)針對.net 4.0

我們剛剛在VS 2015中基於Visual Studio擴展性項目模板對Visual Studio插件進行了重新設計。生成的VSIX在VS 2015和2017 RC1上效果很好。

但是,我想將VSIX定位於VS 2010(最好是2012)。 這是問題開始的地方。

  • VS 2010使用.net 4.0。
  • 我將編譯器放到.net 4.0
  • VS 2015(4.5)程序集將不會加載(即Microsoft.VisualStudio.Shell.14.0)。
  • 沒關系,因為我不使用任何內容,因此我刪除了對它們的引用,轉而使用10.0(2010)版本。
  • 偉大的代碼編譯。
  • 但是VSIX軟件包沒有

1> C:\\ Program Files(x86)\\ MSBuild \\ 14.0 \\ bin \\ Microsoft.Common.CurrentVersion.targets(1820,5):警告MSB3274:主要參考資料“ Microsoft.VisualStudio.Imaging,Version = 14.0.0.0,Culture =中立,PublicKeyToken = b03f5f7f11d50a3a,processorArchitecture = MSIL”無法解析,因為它是針對“ .NETFramework,Version = v4.5”框架構建的。 這是當前目標框架“ .NETFramework,Version = v4.0”的更高版本。

所以問題似乎是,如果我針對VS 2010,則需要將其構建為.net 4.0,但是VS 2015的構建腳本需要.net 4.5。

我想知道是否可以在VS 2015項目中使用VS 2010構建工具? 還是我必須將VS 2015項目轉換回VS 2010?

UPDATE

開始認為由於其他原因這是不可能的...

https://docs.microsoft.com/en-us/visualstudio/extensibility/faq-2017

新的VSIX v3格式與VSIX v2向后兼容,因此您仍然可以使用具有支持Visual Studio 2012及更高版本的單個VSIX ID的單個VSIX。 新的VSIX v3格式不支持Visual 2010和更早版本。 為了支持Visual Studio 2010以后的版本,您將需要創建一個單獨的擴展 (具有單獨的VSIX ID)。

為VS 2010創建一個單獨的項目和VSIX,為VS 2012和更高版本創建另一個。 您可以在這里查看我的資源: https : //github.com/ErikEJ/SqlCeToolbox

請注意,我還需要對我的VS 2010擴展使用.NET 4.5.1(僅要求在PC上存在/安裝.NET 4.5.1,並且該內置於Windows 8.1和更高版本)

我遇到了類似的問題,因此我創建了一個名為VsixUpdater的Nuget程序包,如果將其添加到VSIX項目中,它可以自動進行VSIX遷移,添加后甚至可以與舊版本的Visual Studio(我在2012年測試過)一起使用該軟件包生成的VSIX軟件包將與V3和2017兼容,有關詳細信息,請參見https://github.com/axodox/VsixUpdater

最后我完成了兩個項目

  • 在.Net 4.0下使用版本2.0清單(使用VS 2015構建)編譯的,針對VS 2010的項目。
  • 使用3.0版清單(在VS 2015中構建)在.Net 4.5下編譯的針對VS 2012 +的項目。

引用已經有一定的花俏了,但是這一切似乎都奏效。 我們唯一未解決的問題是代碼簽名,因為VS 2015將不接受SHA256以下的任何內容,而VS 2012將不接受SHA256。

暫無
暫無

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

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