2013-04-02 24 views
17

Tôi có dự án C# mà tôi đang xây dựng trong VS 2010. Nó tham chiếu dự án C++ thông qua COM, cũng là một phần của giải pháp. Thứ sáu tuần trước, tôi đã xây dựng thành công, đã thay đổi một dòng mã, tạo một bản dựng khác và tôi bắt đầu nhận được lỗi về .NET.Phiên bản đích của Khuôn khổ .NET không khớp với Điều kiện khởi động

Phiên bản đích của Khuôn khổ .NET trong dự án không khớp với phiên bản điều kiện khởi chạy .NET Framework 'Khuôn khổ .NET 3.5'. Cập nhật phiên bản của điều kiện khởi động .NET Framework để phù hợp với phiên bản đích của Khuôn khổ .NET trong Hộp thoại Tùy chọn Biên dịch Nâng cao (VB) hoặc Trang Ứng dụng (C#, F #).

  • Project -> Properties -> Ứng dụng -> Target Framework (đối với từng dự án trong cả Debug và Release)
  • Project -> Properties -> Publish -> Điều kiện tiên quyết (xác nhận .NET 3.5 và Windows Installer 3.1)
  • Setup -> Launch điều kiện -> .NET Framework
  • Setup -> Properties -> Điều kiện tiên quyết

tôi cũng đã xem xét mã vdproj cho trình cài đặt của tôi, xác nhận các điều kiện ra mắt là .NET 3.5:

"ComponentsUrl" = "8:" 
"Items" 
{ 
    "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Net.Framework.3.5.SP1" 
    { 
     "Name" = "8:.NET Framework 3.5 SP1" 
     "ProductCode" = "8:Microsoft.Net.Framework.3.5.SP1" 
    } 
    "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Windows.Installer.3.1" 
    { 
     "Name" = "8:Windows Installer 3.1" 
     "ProductCode" = "8:Microsoft.Windows.Installer.3.1" 
    } 
} 

"ComponentsUrl" = "8:" 
"Items" 
{ 
    "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Net.Framework.3.5.SP1" 
    { 
     "Name" = "8:.NET Framework 3.5 SP1" 
     "ProductCode" = "8:Microsoft.Net.Framework.3.5.SP1" 
    } 
    "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Windows.Installer.3.1" 
    { 
     "Name" = "8:Windows Installer 3.1" 
     "ProductCode" = "8:Microsoft.Windows.Installer.3.1" 
    } 
} 

"LaunchCondition" 
{ 
    "{A06ECF26-33A3-4562-8140-9B0E340D4F24}:_799EF2A78D074B669D0B30310FD56A67" 
    { 
     "Name" = "8:.NET Framework" 
     "Message" = "8:[VSDNETMSG]" 
     "FrameworkVersion" = "8:.NETFramework,Version=v3.5" 
     "AllowLaterVersions" = "11:FALSE" 
     "InstallUrl" = "8:http://go.microsoft.com/fwlink/?LinkId=131000" 
    } 
} 

Vì tôi xây dựng cho cả trình biên dịch x86 và x64, tôi có hai dự án thiết lập. Thứ hai, cho bộ vi xử lý x86, không nhận được lỗi .NET. Tôi đã so sánh mã trong vdproj của nó với điều này, và nó trông giống nhau.

Tôi đã tìm thấy một số chủ đề về vấn đề này, bao gồm một chủ đề rất tốt here, nhưng không ai trong số họ đã giúp tôi giải quyết vấn đề này. Bất kỳ đề nghị sẽ là hữu ích.

EDIT

tôi đã thay đổi tất cả mọi thứ để NET 4.0 chỉ để xem nếu nó làm cho một sự khác biệt, và dự án xây dựng thành công. Tôi đã thay đổi nó trở lại, và nó đã cho tôi lỗi phiên bản .NET một lần nữa. Tôi đã kiểm tra tệp vdproj cho bất kỳ tham chiếu "4.0" nào và chỉ tìm thấy nó cho AspNetVersion, cũng xuất hiện trong phiên bản x86 của trình cài đặt hoạt động.

"AspNetVersion" = "8:4.0.30319.0" 

Tôi cần phải phát hành với .NET 3.5, vì vậy đây chỉ là một bài tập để xem việc thay đổi phiên bản thành nội dung khác và ngược lại sẽ giải quyết được vấn đề.

+0

Không hoàn toàn liên quan đến vấn đề của bạn, nhưng tôi nhận thấy bạn đang giữ nhiều tệp dự án cho các nền tảng mục tiêu khác nhau. Bạn nên kiểm tra điều này, có thể làm cho cuộc sống của bạn dễ dàng hơn: http://stackoverflow.com/a/145970/81193 –

+0

Tôi đã có dự án tương tự như trước đây, nhưng dll C++ không đăng ký chính xác và tôi không thể truy cập nó. Trên một ý thích, tôi thêm nó vào dự án và tất cả mọi thứ làm việc như một say mê ... ít nhất là cho đến khi vấn đề này phát sinh. Cảm ơn bạn đã liên kết, mặc dù. – Tim

Trả lời

9

Hóa ra mã C++ cũng được liên kết với .NET vì một số lý do. Tôi đã sử dụng bài viết this để giúp tôi thay đổi phiên bản C++ .NET từ 4.0 sang 3.5. Các bước cơ bản là

  1. Mở C++ Dự án vcxproj trong một trình soạn thảo văn bản
  2. Tìm <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
    • này có thể cần phải được tạo ra dưới Globals PropertyGroup
  3. Thay đổi 4,0-3.5
  4. Mở dự án trong VS
  5. Nhấp chuột phải vào C++ dự án và chọn Properties
  6. Chọn Common Properties và xác nhận rằng phiên bản là 3,5
  7. Chọn Configuration Properties -> General
  8. Hãy chắc chắn rằng nền tảng Toolset được thiết lập để V90
+1

Không thể tin được! Đây là nó cho tôi (V3.5 SP1).Đối với VS2010, tôi chắc chắn phải thêm v3.5 trong nhóm Thuộc tính Globals, và # 6 không có mặt, và # 8 là v100. CẢM ƠN BẠN! –

4

đã cùng một vấn đề như dự án này đã được chuyển đổi từ năm 2008 đến năm 2010.

Để thay đổi bootstrapper, tôi mở csproj và tự loại bỏ các trường hợp từ 3,5 trong đó:

<BootstrapperPackage Include="Microsoft.Net.Client.3.5"> 
    <Visible>False</Visible> 
    <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName> 
    <Install>false</Install> 
</BootstrapperPackage> 
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1"> 
    <Visible>False</Visible> 
    <ProductName>.NET Framework 3.5 SP1</ProductName> 
    <Install>false</Install> 
</BootstrapperPackage> 

Ngoài ra, tôi phát hiện ra bạn chỉ việc kích chuột phải vào có thể Setup và dự án triển khai, tài sản hit, đi đến điều kiện tiên quyết và chọn đúng khung công tác .NET.

Thật khó để tìm thấy nó, bạn phải bấm vào nút Điều kiện tiên quyết.

33

Để thay đổi thông qua giao diện người dùng (không phải trình chỉnh sửa văn bản). Lấy từ here.

1) dự án Chọn cài đặt

2) Trong giải pháp Explorer hoặc Solution Navigator nhấp vào biểu tượng ở phía trên cùng của bảng điều khiển "Launch Điều kiện Editor" (biểu tượng của nó với ống nhòm).

3) Trong điều kiện khởi chạy, chọn ".Net framework" ở bên phải trong "Properties" Chọn "Version", bạn sẽ thấy menu thả xuống. thay đổi khung công tác thành khung mục tiêu của bạn.

4) Xây dựng và cài đặt.

Nếu sau đó bạn nhận được một thông điệp tương tự như sau:

Chú ý: Các phiên bản của điều kiện ra mắt .NET Framework' .NET Framework 4' không phù hợp với lựa chọn NET gói Khung bootstrapper . Cập nhật điều kiện khởi chạy .NET Framework để khớp với phiên bản .NET Framework được chọn trong Hộp thoại điều kiện tiên quyết.

Thực hiện các bước sau:

1) Nhấp chuột phải vào dự án cài đặt và bấm vào 'properties'.

2) Nhấp vào nút 'Điều kiện tiên quyết'.

3) Thay đổi theo ý muốn.

+0

Hoàn hảo! Phiếu bầu +1 –

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