3

我在Visual Studio 2015中使用TFS,並且有一個關於MATLAB文件關聯的問題。對於.m文件,沒有協會MATLAB,如下所示:Visual Studio 2015中的MATLAB文件關聯/ TFS

Function

令人困惑的是,有一個.fig.mat文件的關聯,所以VS必須認識到MATLAB「存在」。如果我雙擊這些文件類型中的一個,它將在MATLAB中打開它,就像從Explorer窗口中打開它一樣。這是我想要.m文件的行爲。

Figure

作爲最低要求,我想有.m文件的MATLAB圖標,使他們很容易被發現在一個目錄。作爲理想的解決方案,這些文件也可以在TFS中的MATLAB(而不是VS文本編輯器)中打開。

我已經嘗試過「選項」>「文本編輯器」中的「文件擴展名」選項,但MATLAB在編輯器列表中不適用於我。

Options

值得一提的是我的工作網是非常嚴格的軟件安裝,所以更少的外部加載項越好(最好沒有)。建議感激。

+0

你的意思是你使用TFS源碼控制MATLAB文件?現在你想要將MATLAB與VS集成? –

+0

你從哪裏看到無花果文件的圖標?在源代碼管理器或Windows資源管理器中? –

+0

@ Eddie-MSFT源代碼管理資源管理器,VS內部。 '.mat'文件也顯示正確的圖標... – Wolfie

回答

0

所以很長一段時間後,我發現一個對此的合理解決方法。

您可以設置.m文件的「Open With」默認值,但是這似乎爲每個文件打開一個新的MATLAB實例 - 並不理想!由SACn建議低於their answer


更好的選擇是使用Visual Studio的「外部工具」。

轉到工具>外部工具,然後如this documentation所示,創建一個新工具。使用以下參數:

Title:  Your Title Here 
Command: cmd.exe 
Arguments: /c "$(ItemPath)" 

勾選「退出時關閉」。這將打開/c(在命令後終止)標誌的命令提示符,並運行您在VS中打開的文件的文件名。在Windows系統上,這將在MATLAB的一個開放實例中打開該文件,或者如果不存在,則啓動一個新文件。


這可以運行多種方式...指定一個快捷鍵,從工具菜單中運行時,它添加到工具欄,將它添加到右鍵菜單。

現在有一個點擊/按鍵來按需打開一個打開的.m文件。它仍然缺少MATLAB文件關聯(以及文件瀏覽器中的相應圖標),但主要工作!

0

如果我理解正確,你想與MATLAB集成MATLAB(看起來你的問題不是與TFS相關的)。

Visual Studio沒有這樣的擴展名,但有MatLab extension

============================================== ===========================

從評論,似乎你想使用MATLAB團隊探索,以啓用綜合使用Team Foundation版本控制。恐怕此時你的要求無法實現。 MATLAB不支持團隊資源管理器或TFS MSSCCI Provider

我在下面的網站提交用戶的聲音,你可以投票吧:

https://visualstudio.uservoice.com/forums/121579-visual-studio-ide/suggestions/18325612-enable-integrated-use-of-team-foundation-version-c

+0

這取決於你的意思是「集成」...我不想在VS中編輯文件,只是使用TFS進行版本控制,但是使用MATLAB更好地交流用於打開和顯示'.m'文件。我已經看到了Visual Studio的代碼擴展,但是我沒有在市場上買到不同的編輯器...... – Wolfie

+0

好的,所以你想在MATLAB中使用團隊探索來正確地集成使用Team Foundation版本控制嗎?恐怕此時你的要求無法實現。 MATLAB不支持團隊資源管理器或TFS MSSCCI提供程序(https://marketplace.visualstudio.com/items?itemName=TFSPowerToolsTeam.MicrosoftVisualStudioTeamFoundationServer20132015M)。我在下面的網站上提交了用戶聲音,您可以對其進行投票:https://visualstudio.uservoice.com/forums/121579-visual-studio-ide/suggestions/18325612-enable-integrated-use-of-team-foundation -version-C。 –

+0

感謝您的想法,雖然也許您已經擴大了我想要的範圍。我只是希望能夠直接從VS/TFS打開MATLAB,並且能夠使我的文件關聯正常工作......一個系統與另一個系統沒有大的集成。 – Wolfie

1

有一個實用工具,我經常用它來修復與MATLAB相關的文件的OS級關聯問題 - associateFiles from FEX

你或許應該associateFiles('deleteadd','.m')調用它,它會生成一個名爲一個註冊表文件,該文件包含以下內容(顯然產生了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關聯。

我不知道這是否適用於您的問題,但我認爲應該提及。

+0

不幸的是,這並沒有解決我的問題,但感謝您的鏈接 - 它似乎是一個有用的功能牢記! – Wolfie

0

建議:MATLAB是用Java編寫的,而不是基於.NET或Visual Studio的擴展,所以如果我們試圖打開MATLAB Editor作爲插件,這不是一個好主意。

現在要編輯.m文件,您必須定義文件類型爲的新(外部)默認編輯器。

如果MATLAB許可證不存在,請使用Notepad ++,Sublime和其他免費編輯器,它們支持.m文件語法高亮顯示。

+0

據我所知,我的問題是*如何*定義一個新的外部默認編輯器,如我提供的圖像所示...一個MATLAB許可證存在,因此我想使用它! – Wolfie

+0

工作解決方案:首先*在VS 2015中使用.m文件打開項目* - > *按Ctrl + O * - >選擇*所有文件*,*選擇任意.m文件*,然後**打開按鈕中的小下拉箭頭和點擊打開使用** - >使用*添加*按鈕添加MATLAB列表。第二步:在解決方案資源管理器*右鍵單擊.m文件 - > OpenWith - >現在你會看到MATLAB編輯器 - >設爲默認* – SACn

-1

確定,這裏就是我做的:

我已經安裝了VS代碼,正因爲如此,它在我的默認程序這樣造成的關聯:

enter image description here

那麼你可以只在這個擴展點你的VS程序:

enter image description here

+0

我沒有使用VS代碼,正如我的問題標題和文字所述, m使用Visual Studio 2015 ...我也說過我不想讓VS成爲默認編輯器,我希望MATLAB成爲默認編輯器,並且在從TFS/VS打開文件時就像這樣。當然,MATLAB已經是'.m'文件的默認值... – Wolfie