我在 Visual Studio 2015 中使用 TFS,并且对 MATLAB 文件关联有疑问。对于 .m
文件,没有与 MATLAB 的关联,如下所示:
令人困惑的是,.fig
和.mat
文件之间存在关联,因此 VS 必须识别出 MATLAB“存在”。如果我双击其中一种文件类型,它将在 MATLAB 中打开它,就像在资源管理器窗口中一样。这是我希望 .m
文件的行为。
至少,我希望为 .m
文件添加 MATLAB 图标,以便在目录中轻松找到它们。作为理想的解决方案,这些文件也可以从 TFS 在 MATLAB(而不是 VS 文本编辑器)中打开。
我已经尝试了选项 > 文本编辑器中的“文件扩展名”选项,但 MATLAB 在编辑器列表中不适合我。
值得注意的是,我的工作网络对软件安装非常严格,因此外部加载项越少越好(最好没有)。建议表示赞赏。
最佳答案
我经常使用一个实用程序来修复与 MATLAB 相关文件的操作系统级关联问题 - associateFiles from FEX .
您可能应该使用 associateFiles('deleteadd','.m')
调用它,这将生成一个名为 MatlabFileAssocFix.reg
的注册表文件,其中包含以下内容(显然MATLAB路径是根据你的系统生成的):
Windows Registry Editor Version 5.00
;FIXES MATLAB FILE ASSOCIATIONS
;REMOVES M FILE ASSOCIATIONS
[-HKEY_CLASSES_ROOT\.m]
[-HKEY_CLASSES_ROOT\MATLAB.m.9.1.0]
[-HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.m]
;ADD SHELL OPEN
[HKEY_CLASSES_ROOT\Applications\MATLAB.exe\shell\open\command]
@="\"C:\\D\\Program Files\\MATLAB\\R2016b\\bin\\win64\\MATLAB.exe\" \"%1\""
;ADD M FILE ASSOCIATIONS
[HKEY_CLASSES_ROOT\.m]
@="MATLAB.m.9.1.0"
"Content Type"="text/plain"
"PerceivedType"="Text"
[HKEY_CLASSES_ROOT\.m\OpenWithProgids]
"MATLAB.m.9.1.0"=""
[HKEY_CLASSES_ROOT\.m\PersistentHandler]
@="{5e941d80-bf96-11cd-b579-08002b30bfeb}"
[HKEY_CLASSES_ROOT\.m\Versions\MATLAB.m.9.1.0]
"FileVersionMS"=dword:00090001
"FileVersionLS"=dword:00000000
[HKEY_CLASSES_ROOT\MATLAB.m.9.1.0]
@="MATLAB Code"
"FriendlyTypeName"="@C:\\D\\Program Files\\MATLAB\\R2016b\\bin\\win64\\matlab.exe,-58"
[HKEY_CLASSES_ROOT\MATLAB.m.9.1.0\DefaultIcon]
@="C:\\D\\Program Files\\MATLAB\\R2016b\\bin\\win64\\m.ico,0"
[HKEY_CLASSES_ROOT\MATLAB.m.9.1.0\Shell\Open]
@="Open"
[HKEY_CLASSES_ROOT\MATLAB.m.9.1.0\Shell\Open\command]
@="\"C:\\D\\Program Files\\MATLAB\\R2016b\\bin\\win64\\matlab.exe\""
[HKEY_CLASSES_ROOT\MATLAB.m.9.1.0\Shell\Open\ddeexec]
@="uiopen('%1',1)"
[HKEY_CLASSES_ROOT\MATLAB.m.9.1.0\Shell\Open\ddeexec\application]
@="ShellVerbs.Matlab.9.1.0"
[HKEY_CLASSES_ROOT\MATLAB.m.9.1.0\Shell\Open\ddeexec\topic]
@="system"
[HKEY_CLASSES_ROOT\MATLAB.m.9.1.0\Shell\Run]
@="Run"
[HKEY_CLASSES_ROOT\MATLAB.m.9.1.0\Shell\Run\command]
@="\"C:\\D\\Program Files\\MATLAB\\R2016b\\bin\\win64\\matlab.exe\""
[HKEY_CLASSES_ROOT\MATLAB.m.9.1.0\Shell\Run\ddeexec]
@="run('%1')"
[HKEY_CLASSES_ROOT\MATLAB.m.9.1.0\Shell\Run\ddeexec\application]
@="ShellVerbs.Matlab.9.1.0"
[HKEY_CLASSES_ROOT\MATLAB.m.9.1.0\Shell\Run\ddeexec\topic]
@="system"
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.m\OpenWithProgids]
"m_auto_file"=hex(0):
"MATLAB.m.9.1.0"=hex(0):
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.m\OpenWithList]
"a"="MATLAB.exe"
"MRUList"="a"
当您导入此文件时,它会删除 .m
存在的任何关联并将其与 MATLAB 关联。
我不知道这是否适用于您的问题,但我认为应该提及。
关于Visual Studio 2015/TFS 中的 MATLAB 文件关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42245331/