2014-03-25 72 views
2

NuGet包部署是由于以下原因,非常有吸引力:的NuGet和Visual Studio的工具箱项

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

问题是当组件/库与Visual Studio关联时工具箱项目。据我所知,在获得组件的最新版本之后,程序集版本与Toolbox项目的版本发生冲突。

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

谢谢。

+0

你想看看https://bitbucket.org/dfowler/vsixcommands/wiki/Home – bradgonesurfing

回答

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 
}