Tôi có một phiên bản Project
và tôi không hiểu cách tìm hiểu loại/ngôn ngữ dự án. Cụ thể, tôi cần kiểm tra dự án C/C++.Làm thế nào để xác định có hay không đối tượng EnvDTE.Project đại diện cho một dự án C/C++?
docs dường như thiếu.
Trước đó, một người khác thêm vào các bit sau của ma thuật để mở rộng VS mã nguồn mở của tôi, và nó hoạt động trong VS2013-2015:
private static bool isVisualCppProject(object project)
{
Type projectObjectType = project.GetType();
var projectInterface = projectObjectType.GetInterface("Microsoft.VisualStudio.VCProjectEngine.VCProject");
return projectInterface != null;
}
...
isVisualCppProject(project.Object);
Nhưng nó không còn hoạt động trong VS 2017 RC. Và tôi sẵn sàng loại bỏ ma thuật phản chiếu thời gian chạy này và không đánh số object
và dynamic
thay vì Project
- mã đã không thể thực hiện được vì điều này.
Có thuộc tính 'Kind' (https://msdn.microsoft.com/en-us/library/envdte.project.kind.aspx) cho' envdte.project'. Đó là GUID. Có các kiểu Project được định nghĩa trước trong 'PrjKind' (https://msdn.microsoft.com/en-us/library/vslangproj.prjkind.aspx) nhưng có vẻ như không có thuộc tính cho c/C++. Tôi đoán bạn có thể nhận được rằng GUID và nó sẽ giống nhau cho tất cả các dự án c/C++. –
@AramKocharyan: Tôi đã thấy 'Loại', nhưng không có danh sách các loại" có thể ", cũng không bảo đảm rằng nó thực sự tĩnh trên các máy, cài đặt và phiên bản VS khác nhau ... –
@ Violet-Hươu cao cổ: Bạn có giải quyết được không vấn đề? nếu vấn đề vẫn còn tồn tại, xin vui lòng cho tôi biết. –