NuGet和Visual Studio Toolbox项目

时间:2014-03-25 16:09:25

标签: .net visual-studio visual-studio-2012 nuget

由于以下原因,NuGet包部署非常有吸引力:

  • 简化组件更新
  • 简化更新文件的源代码管理
  • 自动下载和安装
  • ...

问题是组件/库与Visual Studio Toolbox项相关联。据我所知,在获得组件的最新版本后,程序集版本与Toolbox项目的版本冲突。

这个问题有一个优雅的解决方案吗?

感谢。

1 个答案:

答案 0 :(得分:0)

看起来安装VSIX扩展的代码是从VSIXCommands nuget pacakge获取的以下代码段,应该能够从您的nuget包安装程序运行。或者您可以直接在VSIXCommands nuget package添加依赖项并使用它。

这假设您的控件打包为VSIX扩展。

$extensionManager = [Microsoft.VisualStudio.Shell.Package]::GetGlobalService([Microsoft.VisualStudio.ExtensionManager.SVsExtensionManager])
$extensionRepository = [Microsoft.VisualStudio.Shell.Package]::GetGlobalService([Microsoft.VisualStudio.ExtensionManager.SVsExtensionRepository])
$VSInstallDir = Get-ItemProperty HKLM:\SOFTWARE\Microsoft\VisualStudio\10.0 InstallDir | Select -ExpandProperty InstallDir
$vsixInstallerPath = Join-Path $VSInstallDir VSIXInstaller.exe

function Get-InstalledVsix {
    param(
        [string]
        [parameter(Mandatory = $true)]
        $VsixId
    )

    $vsix = $null
    if($extensionManager.TryGetInstalledExtension($VsixId, [ref]$vsix)) {
        $vsix
    }
    else {
        $null
    }
}

function Install-Vsix {
    param(
        [string]
        [parameter(Mandatory = $true)]
        $VsixPath
    )

    Start-Process $vsixInstallerPath -ArgumentList $VsixPath -Wait
}