C# 防止在添加时打开新文件

C# 防止在添加时打开新文件,c#,visual-studio-2010,envdte,guidance-automation-tool,C#,Visual Studio 2010,Envdte,Guidance Automation Tool,我正在做一个GAX项目,我有一个操作,将文件夹中的所有文件添加到一个新的解决方案项文件夹中。这用于在项目根目录中插入所需的文件,如Local.testsettings等 我的问题是,当我添加一个文件时,它会立即打开。对于.txt文件或类似文件来说,这并不太糟糕。对于.testsettings文件,它会打开一个模式窗口,阻止所有进程 我能做些什么来防止这种打开?我无法在ProjectItem.Document上使用.close,因为代码不是在mySolution.ProjectItems.AddF

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

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

我能做些什么来防止这种打开?我无法在ProjectItem.Document上使用.close,因为代码不是在mySolution.ProjectItems.AddFromFilefile语句之后执行的

如果您知道有什么方法可以阻止文件在添加时打开,无论是手动添加还是通过代码添加,我都想知道

如所问,完整代码为:

        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);                
        }       

非常感谢

这里有点像过去,但最近我想为我编写的自定义VS多项目向导做同样的事情时,遇到了这个问题。在VS2017中,快速而简单的解决方案是在向OP中添加使用类似代码的文件后,我在向导实现的IWizard.RunFinished方法中调用了这一点:

DTE.Documents.CloseAll(vsSaveChanges.vsSaveChangesNo);

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

让我们看看你是如何添加这些文件的?你不需要把它们全部展示给我们看;只需向我们展示如何添加一个文件,然后打开。我认为问题不在于您,这是Visual Studio的标准行为。将文件添加到项目/解决方案中,它会立即打开。我有一个可以控制这种行为的连接。