Tôi hiện đang cố gắng lặp qua tất cả các dự án của tôi (sharepoint) để có được tất cả các tính năng guids vào một tệp. có tôi muốn tiền tố chúng với tên dự án. Vấn đề của tôi là DTE.Solution.Item và DTE.Solution.Projects.Item (hoặc các điều tra cho foreach) sẽ không lấy một số nguyên làm tham số và foreach trả về một đối tượng không thể cast được cho Project.Truy cập các Dự án qua DTE trong Mẫu C# T4
Dưới đây là đoạn mã của tôi:
var hostServiceProvider = (IServiceProvider) Host;
var dte = (DTE) hostServiceProvider.GetService(typeof(DTE));
var projectCount = dte.Solution.Projects.Count;
var projects = new Dictionary<string, string>();
foreach(Project dteProject in dte.Solution)
{
var dteProject = dte.Solution.Item(i);
projects.Add(dteProject.Name, dteProject.FullName);
}
Được rồi - mã là alright - trình gỡ lỗi là KHÔNG! Ngoại lệ của tôi được đưa vào ngữ cảnh gỡ lỗi, nhưng Mẫu sẽ chạy tốt nếu trình gỡ lỗi không được đính kèm.
tôi nhìn thấy cùng một vấn đề chính xác này, và chỉ gặp nó sáng nay (thời gian tốt trên các câu hỏi). Trong trường hợp của tôi nó ném một InvalidCastException khi iterating Project.ProjectItems. Như được mô tả bên dưới, nó chỉ ném khi gỡ lỗi mẫu. – daveaglick