防止在添加时打开新文件

时间:2011-02-14 22:51:10

标签: c# visual-studio-2010 envdte guidance-automation-tool

我正在做一个GAX项目,我有一个动作,将文件夹中的所有文件添加到新的“解决方案项目”文件夹中。这用于将项目根目录所需的文件作为Local.testsettings等插入。

我的问题是,当我添加文件时,它会立即打开。对于.txt文件等,它并不太糟糕。对于.testsettings文件,它会打开一个模块窗口,阻止所有进程。

我该怎么做以防止这种开放?我不能在ProjectItem.Document上使用.close,因为代码不会在mySolution.ProjectItems.AddFromFile(file)语句之后执行。

如果您知道有任何方法可以防止文件在添加时打开(无论是手动添加还是通过代码添加),我想知道。

正如所要求的那样,完整的代码是:

        DTE dte = GetService<DTE>();

        string folderPath = System.IO.Directory.GetCurrentDirectory() + SolutionFolderPath;

        var solution = dte.Solution as Solution2;
        var solutionItems = solution.AddSolutionFolder("Solution Items");

        foreach (var file in Directory.GetFiles(folderPath))
        {
            var item = solutionItems.ProjectItems.AddFromFile(file);                
        }       

非常感谢!

1 个答案:

答案 0 :(得分:0)

从这里过去可以说是一个爆炸,但是当我最近想为我编写的自定义VS多项目向导做完全相同的事情时,我遇到了这个问题。在VS2017中,快速简单的解决方案是在添加文件之后(使用与OP类似的代码),我在向导实现的IWizard.RunFinished方法中调用了此方法:

DTE.Documents.CloseAll(vsSaveChanges.vsSaveChangesNo);

请注意,在我的向导代码中,我将_DTE对象存储在IWizard.RunStarted的成员属性中,以供以后使用(RunStarted方法之外)。现在,当我的模板向导完成时,没有打开的文档!