当我在“待更改”视图中双击文件时,Visual Studio中是否有一种方法可以更改行为。
默认行为是,Visual Studio在代码编辑器中打开文件,但我希望它打开带有最新版本的“Compare”对话框。 (与TortoiseSVN中的行为相同)
答案 0 :(得分:58)
转移+双击。
答案 1 :(得分:58)
有一种方法可以使这个永久化,所以你不需要移动+双击:http://www.richard-banks.org/2010/07/how-to-double-click-to-diff-pending.html
路径:HKCU \ Software \ Microsoft \ VisualStudio \< ver> \ TeamFoundation \ SourceControl \ Behavior
值:DoubleClickOnChange(DWORD)
0 ==查看主要命令(默认)
1 ==比较作为主要命令
答案 2 :(得分:13)
VS2017的步骤略有不同。 VS 2017 uses its own private registry,存储在AppData文件夹中。
步骤
关闭所有可视演播室实例
选择HKEY_USERS节点,然后点击文件>加载配置单元
打开private %UserProfile%\AppData\Local\Microsoft\VisualStudio\15.0_[*some key*]
可以找到的privateregistry.bin
提供密钥名称。例如VS2017PrivateRegistry
导航到以下路径并创建值为1的新DWORD。
<强>路径强>:HKEY_USERS\VS2017PrivateRegistry\Software\Microsoft\VisualStudio\15.0_[*some key*]\TeamFoundation\SourceControl\Behavior
值:DoubleClickOnChange(DWORD)1
选择HKEY_USERS \ VS2017PrivateRegistry
点击文件&gt;卸载Hive
答案 3 :(得分:6)
此PowerShell脚本应为最新安装的实例(改编自Anish's answer)
启用此功能您需要先关闭所有VS实例。
$instanceId = $(& "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -latest -property instanceId).Trim()
reg.exe load HKLM\VS2017PrivateRegistry $env:LOCALAPPDATA\Microsoft\VisualStudio\15.0_$instanceId\privateregistry.bin
reg.exe add HKLM\VS2017PrivateRegistry\Software\Microsoft\VisualStudio\15.0_$instanceId\TeamFoundation\SourceControl\Behavior /v DoubleClickOnChange /t REG_DWORD /d 1 /f
reg.exe unload HKLM\VS2017PrivateRegistry
此PowerShell命令应为所有已安装的版本启用此选项:
Set-ItemProperty HKCU:\Software\Microsoft\VisualStudio\*\TeamFoundation\SourceControl\Behavior DoubleClickOnChange 1
答案 4 :(得分:4)
将其放在 .reg 文件上,然后双击它,这将使您双击比较,而不是在挂起的更改窗口中打开文件。
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\TeamFoundation\SourceControl\Behavior]
"DoubleClickOnChange"=dword:00000001
确保Visual Studio版本正确。
答案 5 :(得分:2)
您还可以为各种比较类型应用一些Visual Studio键盘快捷键 - Latest,WorkSpace和Previous。
请参阅以下帖子:Comparison keyboard shortcuts for Pending Changes in TFS
答案 6 :(得分:0)
使用Powershell构建Tereza的答案
$instanceId = $(& "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -latest -property instanceId).Trim()
$versionMajor = $(& "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -latest -property installationVersion).Trim().Substring(0,2)
$year = $(& "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -latest -property catalog_productLineVersion).Trim()
reg.exe load HKLM\VS$yearPrivateRegistry $env:LOCALAPPDATA\Microsoft\VisualStudio\$versionMajor.0_$instanceId\privateregistry.bin
reg.exe add HKLM\VS$yearPrivateRegistry\Software\Microsoft\VisualStudio\$versionMajor.0_$instanceId\TeamFoundation\SourceControl\Behavior /v DoubleClickOnChange /t REG_DWORD /d 1 /f
reg.exe unload HKLM\VS$yearPrivateRegistry
这也会尝试确定主要版本。