gpt4 book ai didi

visual-studio-2010 - 修改底层文件后,如何以编程方式刷新/重新加载 VS 项目?

转载 作者:行者123 更新时间:2023-12-04 17:37:57 24 4
gpt4 key购买 nike

我正在开发一个 Visual Studio 包,并且我编写了一些代码,这些代码将使解决方案资源管理器中的文件依赖于另一个文件。

这意味着它赋予它们与代码隐藏文件或设计器文件相同的关系,它们嵌套在父文件下并带有加号/减号图标。

+ MainForm.cs


- MainForm.cs
MainForm.Designer.cs
MainForm.resx

我成功编写的代码正确地修改了底层项目文件,但是在项目关闭并重新打开之前,更改不会反射(reflect)在解决方案资源管理器中。

我正在寻找一些可以刷新或重新加载项目的代码,以便立即在解决方案资源管理器中看到更改。

更多信息...

这是演示我创建依赖文件的机制的 sudo 代码。
IVsBuildPropertyStorage vsBuildPropertyStorage = GetBuildPropertyStorage();
vsBuildPropertyStorage.SetItemAttribute(projectItemIdentifier, "DependentUpon", parentFileName);

我也尝试添加它以尝试重新加载项目,但它没有任何效果。
project.Save();
VSProject obj = project.Object as VSProject;
obj.Refresh();

最佳答案

AFAIK 这样做的唯一方法是通过解决方案资源管理器工具窗口的自动化:

EnvDTE.DTE dte = ...;

string solutionName = Path.GetFileNameWithoutExtension(dte.Solution.FullName);
string projectName = project.Name;

dte.Windows.Item(EnvDTE.Constants.vsWindowKindSolutionExplorer).Activate();
((DTE2)dte).ToolWindows.SolutionExplorer.GetItem(solutionName + @"\" + projectName).Select(vsUISelectionType.vsUISelectionTypeSelect);

dte.ExecuteCommand("Project.UnloadProject");
dte.ExecuteCommand("Project.ReloadProject");

请注意,如果项目尚未保存,用户将在“Project.UnloadProject”调用之前获得一个对话框。

关于visual-studio-2010 - 修改底层文件后,如何以编程方式刷新/重新加载 VS 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12320527/

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