一個可能的解決方案是創建一個新的菜單項與Visual Studio插件,這樣當你在一條線上單擊,然後選擇此菜單選項,您可以執行一個動作(如讀取和解析線和開放文件)。這是可以做到如下:
文件 - >新建項目 - >其他類型 - >擴展 - > Visual Studio的插件,以及實施IDTCommandTarget
Commands2 commands = (Commands2)_applicationObject.Commands;
object[] contextGUIDS = new object[] { };
CommandBars cmdBars = (CommandBars)(_applicationObject.CommandBars);
CommandBar vsBarProject = cmdBars["Code Window"];
scenarioCommand = commands.AddNamedCommand2(_addInInstance, "OpenScenario", "Open scenario", "Open scenario data", true);
scenarioCommand.AddControl(vsBarProject);
然後在exec方法,只是讀行,得到的文件路徑和:
Process.Start(resource)
當然,只顯示菜單選項,如果是在QueryStatus方法specFlow文件:
dynamic docName = _applicationObject.ActiveDocument.FullName;
if (CmdName == OpenScenarioCmd && !((string)docName).EndsWith(".feature"))
{
StatusOption = (vsCommandStatus)vsCommandStatus.vsCommandStatusInvisible;
}
else if (CmdName == OpenScenarioCmd)
{
StatusOption = (vsCommandStatus)vsCommandStatus.vsCommandStatusSupported | vsCommandStatus.vsCommandStatusEnabled;
}
它並不完美,因爲你必須表現出菜單,但它的工作原理。
是的,這應該工作,但我不能改變文件通過相對路徑引用的方式,因爲這些文件版本,這樣他們就可以在不同的基本路徑。我找到了解決辦法,我會回答自己 – danijepg