1

我正在做一个 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);                
        }       

非常感谢!

4

1 回答 1

0

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

DTE.Documents.CloseAll(vsSaveChanges.vsSaveChangesNo);

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

于 2019-02-27T08:34:28.387 回答