Mar*_*tyn 5 vsx visual-studio-2010 vspackage visual-studio vsix
我正在开发一个Visual Studio包,并且我编写了一些代码,这些代码将使解决方案资源管理器中的文件依赖于另一个文件.
这意味着它为它们提供了与代码隐藏文件或设计器文件相同的关系,它们出现在父文件下,并带有加号/减号图标.
+ MainForm.cs
- MainForm.cs
MainForm.Designer.cs
MainForm.resx
Run Code Online (Sandbox Code Playgroud)
我已成功编写并正确修改底层项目文件的代码,但在项目关闭并重新打开之前,更改不会反映在解决方案资源管理器中.
我正在寻找一些代码来刷新或重新加载项目,以便在解决方案资源管理器中立即显示更改.
更多的信息...
这是sudo代码,演示了我创建依赖文件的机制.
IVsBuildPropertyStorage vsBuildPropertyStorage = GetBuildPropertyStorage();
vsBuildPropertyStorage.SetItemAttribute(projectItemIdentifier, "DependentUpon", parentFileName);
Run Code Online (Sandbox Code Playgroud)
我也尝试添加它以试图让项目重新加载,但它没有任何效果.
project.Save();
VSProject obj = project.Object as VSProject;
obj.Refresh();
Run Code Online (Sandbox Code Playgroud)
AFAIK执行此操作的唯一方法是通过Solution Explorer工具窗口的自动化:
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");
Run Code Online (Sandbox Code Playgroud)
请注意,如果尚未保存项目,则用户将在"Project.UnloadProject"调用之前获得一个对话框.
| 归档时间: |
|
| 查看次数: |
3972 次 |
| 最近记录: |