由于以下原因,NuGet包部署非常有吸引力:
问题是组件/库与Visual Studio Toolbox项相关联。据我所知,在获得组件的最新版本后,程序集版本与Toolbox项目的版本冲突。
这个问题有一个优雅的解决方案吗?
感谢。
答案 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
}