2013-07-04 31 views
5

Tôi có một vspackage rằng hoạt động tốt trong vs2012, nhưng khi tôi thay đổi mục tiêu đến 4 hoặc 3.5 để nhắm mục tiêu phiên bản cũ, tôi nhận được biên dịch lỗi:Tạo VSPackage nhắm mục tiêu .net 3.5 và 4

Lỗi 17 Loại hoặc tên không gian tên 'PackageRegistrationAttribute' không thể được tìm thấy (bạn đang thiếu một chỉ thị sử dụng hoặc một tham chiếu lắp ráp?)

và không có tham chiếu để được thêm vào microsoft.visualstudio.shell.10.0 và 9 Có thể tạo một vspackage trong vs2012 cho các phiên bản cũ hơn? Cảm ơn

+0

Nếu bạn đang sử dụng một số phần của mã không có sẵn cho khung .NET cũ hơn khung bạn đã khởi chạy dự án (tôi giả sử 4.5), bạn không thể chuyển đổi dự án mà không xóa phần đó trước đó. –

+0

Nói một cách đơn giản, nếu bạn tham khảo một số 'dll' trong dự án của bạn, 'dll' này sẽ có một phiên bản thích hợp với phiên bản đích. Tôi nghĩ bạn nên thử tìm phiên bản chính xác và tham khảo phiên bản mới thay vì phiên bản mới. –

+0

@ fire-dragon: Cảm ơn nhận xét của bạn, tôi không muốn chuyển đổi dự án sang phiên bản cũ hơn, tôi chỉ muốn tạo một vspackage để có thể sử dụng được bởi các studio trực quan khác nhau, tôi muốn tạo 3 vspackages khác nhau nhắm mục tiêu 3,5, 4 , 4.5 với các thay đổi bắt buộc trong mã nguồn. – Albert

Trả lời

1

Thay vì thêm tham chiếu trực tiếp vào hội đồng Visual Studio SDK, bạn có thể thêm VSSDK thích hợp. * Gói NuGet vào dự án của bạn. Ví dụ, hội đồng Shell bạn đang tìm kiếm để nhắm mục tiêu .NET 3.5 (Visual Studio 2008) là VSSDK.Shell.9.

Lưu ý rằng Visual Studio 2010 bao gồm .NET 4, do đó, nó là cao mà bạn sẽ không cần phải xây dựng dựa trên .NET 3.5. Visual Studio 2008 và trước đó không hỗ trợ các tệp VSIX cho các phần mở rộng của gói, vì vậy bạn thực sự sẽ cắt bỏ công việc của mình nếu bạn muốn phát triển một phần mở rộng hỗ trợ các môi trường cũ hơn.

Các vấn đề liên quan