gpt4 book ai didi

visual-studio-extensions - 如何使用 EnvDTE 以编程方式运行自定义工具或保存文件?

转载 作者:行者123 更新时间:2023-12-04 02:51:17 25 4
gpt4 key购买 nike

我想在少数 .tt 上保存/运行自定义工具来自我的扩展的文件。我不想遍历解决方案/项目中的所有文件,而是希望能够使用文件的相对(或完整)路径来执行保存/运行自定义工具。

有没有办法获得ProjectItem给定文件路径( $(SolutionDir)/MyProject/MyFile.tt )的对象,以便我可以在其上执行方法?

最佳答案

您可以使用 FindProjectItem EnvDTE.Solution的方法键入以按名称查找当前解决方案中的文件。 ExecuteCommand方法依赖于当前的 UI 上下文;所以必须选择该项,否则调用失败。

private bool TryExecuteTextTemplate(string filename)
{
var dte = (DTE2)this.GetService(typeof(SDTE));
Solution solution = dte.Solution;
if ((solution != null) && solution.IsOpen)
{
VSProjectItem projectItem;
ProjectItem item = solution.FindProjectItem(filename);
if (item != null && ((projectItem = item.Object as VSProjectItem) != null))
{
// TODO: track the item in the Solution Explorer

try
{
projectItem.RunCustomTool();
return true;
}
catch (COMException)
{
}
}
}

return false;
}

关于visual-studio-extensions - 如何使用 EnvDTE 以编程方式运行自定义工具或保存文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17597758/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com