我们的构建环境是VS 2015(理想情况下),目标是.net 4.0
我们刚刚在VS 2015中基于Visual Studio可扩展性项目模板重新设计了我们的visual studio插件。由此产生的VSIX在VS 2015& 2017 RC1。
但是我想在VS 2010(最好是2012年)定位VSIX。这就是问题的起源......
1> C:\ Program Files (86)\的MSBuild \ 14.0 \ BIN \ Microsoft.Common.CurrentVersion.targets(1820,5): 警告MSB3274:主要参考 " Microsoft.VisualStudio.Imaging,Version = 14.0.0.0,Culture = neutral, PublicKeyToken = b03f5f7f11d50a3a,processorArchitecture = MSIL"不能 得到解决,因为它建立在反对 " .NETFramework,版本= 4.5版"框架。这是一个比版本更高的版本 当前目标框架" .NETFramework,Version = v4.0"。
所以问题似乎是如果我以VS 2010为目标,我需要将其构建为.net 4.0,但VS 2015构建脚本需要.net 4.5。
我想知道是否可以在VS 2015项目中使用VS 2010构建工具?或者我必须将我的VS 2015项目转换回VS 2010吗?
更新
开始认为出于其他原因这是不可能的......
https://docs.microsoft.com/en-us/visualstudio/extensibility/faq-2017
新的VSIX v3格式向后兼容VSIX v2,所以你会这样做 仍然能够拥有一个VSIX具有单个VSIX ID的VSIX 支持Visual Studio 2012及更高版本。新的VSIX v3格式没有 支持Visual 2010及更早版本。 为了支持Visual Studio 2010, 您需要创建一个单独的扩展(使用单独的VSIX ID)。
答案 0 :(得分:2)
为VS 2010创建一个单独的项目和VSIX,为VS 2012及更高版本创建另一个项目。您可以在此处查看我的来源:https://github.com/ErikEJ/SqlCeToolbox
请注意,我的VS 2010扩展也需要.NET 4.5.1(只需要在PC上存在/安装.NET 4.5.1,它内置于Windows 8.1及更高版本中)
答案 1 :(得分:2)
我遇到了类似的问题,所以我创建了一个名为VsixUpdater的Nuget包,如果添加到VSIX项目,它可以自动执行VSIX迁移,它甚至适用于旧版本的Visual Studio(我在2012年测试过) ,添加软件包后,生成的VSIX软件包将兼容V3和2017,详见https://github.com/axodox/VsixUpdater。
答案 2 :(得分:0)
最后我结束了2个项目
参考文献中有一定程度的提及,但这一切似乎都有效。我们唯一突出的问题是代码签名,因为VS 2015不接受SHA256以下的任何内容,VS 2012将不接受SHA256 ....