2014-01-30 106 views

回答

8

通過提供帶有參數/ResetSettings的設置文件,您可以實現導入

devenv /ResetSettings c:\full\path\to\your\own.vssettings 

這從VS2005起可以使用。

雖然可以進口在命令行中,據我所知是沒有出口從命令行功能。對於您可以使用宏:

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

或者從一個命令行C#應用程序(/參考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); 
} 

要從宏觀和/或C#程序中導入取代/出口/進口

Msdn doc

+0

並從一個宏導入?什麼是'owncsharp'? –

+0

切換導出到導入,冒號後面是什麼文件名。 – rene

+1

任何方式只導入文件中的設置,無需重置所有內容? –

2

沒有resetti NG,在PowerShell中:

function Import-VisualStudioSettingsFile { 
    [CmdletBinding()] 
    param(
     [string] $FullPathToSettingsFile, 
     [string] $DevEnvExe = "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.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:\Windows\temp\Settings.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() 
} 
0

導入和導出,可以從PowerShell的。要將當前設置導出到$outFileName

這需要Visual Studio正在運行。 (你可以通過調用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的。可執行程序。或者,進口無復位:`

$dte.ExecuteCommand("Tools.ImportandExportSettings", '/import:'+$filenameEscaped) 

這個答案@劉若英的C#答案的端口。出於某種原因,我不得不指定確切版本的visual studio DTE.15.0

相關問題