मेरे पास एक छोटा बनाम एडिन है जो समाधान के अंदर परियोजनाओं की तलाश करता है और इसके साथ कुछ सामान करता है। मैं इस तरह की परियोजनाओं को इकट्ठा:वीएस -2010 डीटीई एडिन: समाधान फ़ोल्डर के अंदर परियोजना "परियोजना" नहीं है
Application.DTE.Solution.Projects.OfType<Project>();
हालांकि, जैसे ही मैंने एक समाधान फ़ोल्डर शुरू की है और इसके अंदर एक परियोजना रखा गया है, अचानक कि इस परियोजना कहीं नहीं पाया जा सकता था। इसलिए, मैंने
private IEnumerable<Project> getProjectsRecursive(IEnumerable<Project> iEnumerable)
{
foreach (var item in iEnumerable)
{
yield return item;
foreach (var child in getProjectsRecursive(item.ProjectItems.OfType<Project>()))
{
yield return child;
}
}
}
public IEnumerable<Project> EveryProject { get { return getProjectsRecursive(Application.DTE.Solution.Projects.OfType<Project>()); } }
अभी भी प्रोजेक्ट नहीं है। तो मैं मैन्युअल रूप से देख लिया है, एक
- परियोजना सीधे अंदर समाधान सही
- समाधान फ़ोल्डर सीधे अंदर हल है है पर
item is Project
बुला सही (छोटे WTF) एक समाधान के अंदर - परियोजना फ़ोल्डर (मैंने इसे
folder.ProjectItems
में पाया है) FALSE !!!!! (और निश्चित रूप से स्पष्ट कास्टिंग एक त्रुटि फेंकता है)
क्या है? इसे Project
पर कास्ट किए बिना, मैं FullName
, Properties()
और उस पर कई अन्य चीजें कॉल नहीं कर सकता, भले ही मैं गतिशील पर डालूं। कृपया सहायता कीजिए!