我的問題和這個非常相似:How to cast ComObject to ENVDTE.Project?如何將ComObject投射到未建模項目的ENVDTE.Project?
我想處理在Visual Studio中選擇的項目項目 - >解決方案資源管理器。如果加載項目的代碼工作正常,但我有卸載的項目煩惱(他們被稱爲未建模項目(http://msdn.microsoft.com/en-us/library/hw7ek4f4%28v=vs.80%29.aspx)。
鑄造所選項目加載的項目uiItem.Object是EnvDTE.Project是好的,但如何投未建模項目 沒有「UnmodeledProject」類和鑄造uiItem.Object是項目項不起作用
這是我的代碼:?
Window solutionExplorer = mApplicationObject.Windows.Item(Constants.vsWindowKindSolutionExplorer);
if(solutionExplorer != null)
{
UIHierarchy uiHierarchy = (UIHierarchy)solutionExplorer.Object;
if (uiHierarchy != null)
{
object[] selectedItems = (object[])uiHierarchy.SelectedItems;
foreach (UIHierarchyItem uiItem in selectedItems)
{
// Valid project
if (uiItem.Object is EnvDTE.Project)
{
EnvDTE.Project project = uiItem.Object as EnvDTE.Project;
if (project.FullName.Contains(".vdproj") || project.Kind == "{54435603-DBB4-11D2-8724-00A0C9A8B90C}")
{
}
}
else if (uiItem.Object is ProjectItem)
{
// This is never jumped...
}
else
{ ...
沒有,這是後我不想去。我想識別所選項目的類別,但感謝您的評論。 – Slappy