Экспорт/импорт настроек Visual Studio из командной строки

Вопрос:Как экспортировать/импортировать параметры VS 2010/2012 из командной строки или с помощью С#? Возможно ли это даже без использования GUI Automation? Лучший ответ: Вы можете добиться импорта, предоставив файл настроек с аргументом /ResetSettings. devenv /ResetSettings c:fullpathtoyourown.vssettings Это работает с VS2005 и далее. Несмотря на то, что вы можете импортировать из командной строки, AFAIK не имеет функции

Вопрос:

Как экспортировать/импортировать параметры VS 2010/2012 из командной строки или с помощью С#? Возможно ли это даже без использования GUI Automation?

Лучший ответ:

Вы можете добиться импорта, предоставив файл настроек с аргументом /ResetSettings.

devenv /ResetSettings c:fullpathtoyourown.vssettings

Это работает с VS2005 и далее.

Несмотря на то, что вы можете импортировать из командной строки, AFAIK не имеет функции экспортировать из командной строки. Для этого вы можете использовать макрос:

Sub ExportMacro() DTE.ExecuteCommand(«Tools.ImportandExportSettings», «/export:own.vssettings») End Sub

Или из командной строки С# application (/reference EnvDte)

static void Main(string[] args) { var filename = «own.vssettings»; var dte = (EnvDTE.DTE) System.Runtime.InteropServices.Marshal. GetActiveObject(«VisualStudio.DTE»); // version neutral dte.ExecuteCommand(«Tools.ImportandExportSettings», «/export:» + filename); }

Чтобы импортировать из макроса и/или С# программу replace/export с помощью /import

Msdn doc

Ответ №1

Без сброса, в PowerShell:

function Import-VisualStudioSettingsFile { [CmdletBinding()] param( [string] $FullPathToSettingsFile, [string] $DevEnvExe = «C:Program Files (x86)Microsoft Visual Studio 14.0Common7IDEdevenv.exe», [int] $SecondsToSleep = 20 # should be enough for most machines ) if(-not (Test-Path $DevEnvExe)) { throw «Could not find visual studio at: $DevEnvExe — is it installed?» } if(-not (Test-Path $FullPathToSettingsFile)) { throw «Could not find settings file at: $FullPathToSettingsFile» } $SettingsStagingFile = «C:WindowstempSettings.vssettings» # must be in a folder without spaces Copy-Item $FullPathToSettingsFile $SettingsStagingFile -Force -Confirm:$false $Args = «/Command `»Tools.ImportandExportSettings /import:$SettingsStagingFile`»» Write-Verbose «$Args» Write-Host «Setting Tds Options, will take $SecondsToSleep seconds» $Process = Start-Process -FilePath $DevEnvExe -ArgumentList $Args -Passthru Sleep -Seconds $SecondsToSleep #hack: couldnt find a way to exit when done $Process.Kill() } Ответ №2

Импорт и экспорт возможен из powershell. Чтобы экспортировать текущие настройки в $outFileName:

Для этого требуется, чтобы визуальная студия работала. (вы можете сделать это из script, просто вызвав devenv).

Сначала добавьте имя файла в «, чтобы разрешить пробелы в пути к файлам:

$filenameEscaped=»`»$outFileName`»» $dte = [System.Runtime.InteropServices.Marshal]::GetActiveObject(«VisualStudio.DTE.15.0») $dte.ExecuteCommand(«Tools.ImportandExportSettings», ‘/export:’+$filenameEscaped)

Необязательно, выход:

$dte.ExecuteCommand(«File.Exit»)

Чтобы импортировать, используйте параметр /ResetSettings для devenv.exe. Или, чтобы импортировать без сброса: `

$dte.ExecuteCommand(«Tools.ImportandExportSettings», ‘/import:’+$filenameEscaped)

Этот ответ представляет собой порт ответа @rene С#. По какой-то причине мне пришлось указать точную версию visual studio DTE.15.0.

Оцените статью
Добавить комментарий