Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 用于枚举源文件的加载项_Visual Studio_Add In_Visual Studio Addins - Fatal编程技术网

Visual studio 用于枚举源文件的加载项

Visual studio 用于枚举源文件的加载项,visual-studio,add-in,visual-studio-addins,Visual Studio,Add In,Visual Studio Addins,我被要求开发一个加载项,它通过C#解决方案,从源文件中提取所有文档,并将它们导出到HTML文件。我们不能使用普通的文档生成器,因为导出需要使用特定的格式 我知道如何创建一个基本的加载项,但不知道如何枚举源文件 关于如何开始这个项目有什么想法/资源吗 谢谢。以下是我用来搜索以给定字符串结尾的文件的一些代码 该结构类似于Visual Studio中的解决方案资源管理器: Solution -> ProjectItems -> (Nested ProjectItems) -> Fil

我被要求开发一个加载项,它通过C#解决方案,从源文件中提取所有文档,并将它们导出到HTML文件。我们不能使用普通的文档生成器,因为导出需要使用特定的格式

我知道如何创建一个基本的加载项,但不知道如何枚举源文件

关于如何开始这个项目有什么想法/资源吗


谢谢。

以下是我用来搜索以给定
字符串结尾的文件的一些代码

该结构类似于Visual Studio中的解决方案资源管理器:

Solution -> ProjectItems -> (Nested ProjectItems) -> FileNames
无论代码在哪里执行,都可以在解决方案中提取项目,然后在这些项目中提取项目项

var typeFileName = @"\MyClassName.cs";

// Search each Project in the Solution, exclude Unit Test Projects
foreach (Project item in _applicationObject.Solution.Projects.OfType<Project>().Where(p => !p.Name.EndsWith(".Tests")))
{
    // Search each ProjectItem recursively
    foreach (ProjectItem projectItem in item.ProjectItems)
    {
        RecursiveProjectItemSearch(projectItem, typeFileName);
    }
}
var-typeFileName=@“\MyClassName.cs”;
//搜索解决方案中的每个项目,排除单元测试项目
foreach(在_applicationObject.Solution.Projects.OfType()中的项目项,其中(p=>!p.Name.EndsWith(“.Tests”))
{
//递归搜索每个项目项
foreach(项目中的项目项ProjectItem.ProjectItems)
{
递归ProjectItemSearch(projectItem,typeFileName);
}
}
asdasd

private void RecursiveProjectItemSearch(ProjectItem projectItem, string typeFileName)
{
    for (short i = 0; i < projectItem.FileCount; i++)
    {
        var fileName = projectItem.FileNames[i];

        if (fileName.EndsWith(typeFileName))
        {
            // In my case, I want to open the file that I'm searching for
            _applicationObject.ItemOperations.OpenFile(fileName);
        }

        foreach(ProjectItem childProjectItem in projectItem.ProjectItems)
        {
            RecursiveProjectItemSearch(childProjectItem, typeFileName);
        }
    }
}
private void RecursiveProjectItemSearch(ProjectItem ProjectItem,字符串类型filename)
{
对于(短i=0;i
我不知道这是否是最理想的方法,但它应该能起作用。给定上述代码,您可以将其更改为执行
File.Open()
并读取内容或类似内容