Visual Studio 2015/TFS 中的 MATLAB 文件关联

标签 matlab visual-studio visual-studio-2015 tfs file-association

我在 Visual Studio 2015 中使用 TFS,并且对 MATLAB 文件关联有疑问。对于 .m 文件,没有与 MATLAB 的关联,如下所示:

Function

令人困惑的是,.fig.mat 文件之间存在关联,因此 VS 必须识别出 MATLAB“存在”。如果我双击其中一种文件类型,它将在 MATLAB 中打开它,就像在资源管理器窗口中一样。这是我希望 .m 文件的行为。

Figure

至少,我希望为 .m 文件添加 MATLAB 图标,以便在目录中轻松找到它们。作为理想的解决方案,这些文件也可以从 TFS 在 MATLAB(而不是 VS 文本编辑器)中打开。

我已经尝试了选项 > 文本编辑器中的“文件扩展名”选项,但 MATLAB 在编辑器列表中不适合我。

Options

值得注意的是,我的工作网络对软件安装非常严格,因此外部加载项越少越好(最好没有)。建议表示赞赏。

最佳答案

我经常使用一个实用程序来修复与 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/

相关文章:

matlab - 返回值因向量大小而异

matlab - 使用自定义排序顺序的多键 `table/sortrows`

c# - 如何使用 Xamarin for Visual Studio 在真实的 Android 设备上进行调试?

c# - 为什么 Microsoft Visual C# 2008 Express Edition 调试器随机退出?

c# - 命名空间 'Mvc' 中不存在类型或命名空间名称 'System.Web'(您是否缺少程序集引用?)

visual-studio - ESLint 支持 Visual Studio 2017

c++ - VC++ 可再发行版 2012 或 2013 或 2015?

matlab - 逻辑变量可以容纳 NaN 吗?

matlab - 如何将 "crop"MATLAB绘图变成三角形?

visual-studio - 让 Visual Studio 忽略解决方案中的源代码管理绑定(bind)