【问题标题】:VSIX dependency based on visual studio version基于 Visual Studio 版本的 VSIX 依赖
【发布时间】:2014-03-24 22:50:24
【问题描述】:

我创建了一个与 vs2010 和 vs2012 兼容的 Visual Studio 扩展 (VSIX)。它有 Nuget 包管理器作为依赖项。现在我想让它与vs2013兼容。我将 vs2013 添加到支持的产品中。但是,安装总是会失败。显然,Nuget 团队已经为 vs2013 更改了 vsix 扩展的标识符。我无法将标识符更改为新标识符,因为它会影响 vs2010/12。

  <References>
    <Reference Id="NuPackToolsVsix.Microsoft.67e54e40-0ae3-42c5-a949-fddf5739e7a5">
      <Name>NuGet Package Manager</Name>
      <MoreInfoUrl>http://docs.nuget.org/</MoreInfoUrl>
    </Reference>
  </References>

有没有办法根据 Visual Studio 版本向 vsix 添加依赖项。这样我就可以为 vs2013 再添加一个对 nuget 的引用。或者有什么解决方法吗?

vs2013 nuget 扩展的新标识符是NuGet.67e54e40-0ae3-42c5-a949-fddf5739e6a5

【问题讨论】:

  • 您是否考虑过创建两个单独的包?

标签: visual-studio nuget vsix


【解决方案1】:

您可以执行以下任一操作:

  1. 删除对 NuGet 扩展的引用。如果您的用户没有安装 NuGet,或者如果他们有您的扩展不支持的过时版本的 NuGet,这将导致包加载错误或其他错误的风险。

  2. 为 Visual Studio 2010-2012 和 Visual Studio 2013 提供单独的 VSIX 扩展包。

后者可能是最好的方法。您可以按照 Cloud Explorer 扩展中使用的方法从相同的代码库创建两个扩展(注意会有细微的差别,因为此扩展不支持 Visual Studio 2010,但您的支持)。

  1. 在与目标 2010-2012 的扩展相同的文件夹中为 VS2013 扩展创建一个单独的项目文件。我强烈建议您使用视觉差异工具来比较 Rackspace.VisualStudio.CloudExplorer.11.csprojRackspace.VisualStudio.CloudExplorer.12.csproj 展示让它们并存的细微差别。

  2. 创建子文件夹 Properties\vs2010Properties\vs2013 来保存 source.extension.vsixmanifest 文件的两个独立版本.对每个文件使用正确的 NuGet 引用。

如果您的项目是 GitHub 上的开源项目,我可以帮助应用更改并发送拉取请求。

【讨论】:

  • 谢谢,我想我会为 vs2013 创建一个单独的项目文件
猜你喜欢
  • 1970-01-01
  • 2023-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-18
  • 2019-12-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多