7

Tôi đang tạo ứng dụng MVC4 mô-đun, trong đó mỗi mô-đun (= khu vực) là một thư viện lớp. Các mô hình và bộ điều khiển biên dịch thành .dll, các khung nhìn được sao chép vào thư mục thích hợp. Khi chạy, mọi thứ hoạt động tốt. Tại thời điểm thiết kế có một vấn đề gây phiền nhiễu còn lại: Khi chỉnh sửa một khung nhìn dao cạo trong một thư viện lớp, Visual Studio không nhận ra không gian tên System.Web.Optimization.Bắt System.Web.Optimization để hoạt động trong chế độ xem dao cạo trong thư viện lớp

The name "Styles" does not exist in the current context. 
The name "Scripts" does not exist in the current context. 

Tôi đã thử thêm lắp ráp các phần system.web/biên soạn trong thư mục gốc và web.config bên trong:

<add assembly="System.Web.Optimization, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> 

Tôi đã thử nó mà không có phiên bản cụ thể, quá. Cả hai phương pháp này không giải quyết được vấn đề, nhưng gây ra một lỗi thời gian chạy asp.net (có thể nhìn thấy trong dòng đầu tiên của quan điểm dao cạo):

Could not load file or assembly 'System.Web.Optimization, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified. 

Việc lắp ráp được tham chiếu trong dự án và 'Sao chép địa phương' được thiết lập thành 'Đúng'. Nó cũng được thêm vào như một không gian tên trong phần cấu hình dao cạo.

Tôi nghi ngờ đó là vấn đề chung mà tôi sẽ gặp phải với các hội đồng khác trong tương lai.

Chỉnh sửa: Tôi đã thiết lập chung để Intellisense có chế độ xem dao cạo trong thư viện lớp học. Mọi thứ hoạt động cho đến nay, ngoại trừ VS2010 không nhận ra Không gian Tối ưu hoá.

Trả lời

7

Thêm một tập tin web.config vào thư mục gốc của dự án thư viện lớp học của bạn (một trong đó chứa các quan điểm Razor) với các nội dung sau (lấy từ this blog post):

<configuration> 
    <configSections> 
    <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> 
     <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> 
     <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> 
    </sectionGroup> 
    </configSections> 

    <system.web.webPages.razor> 
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    <pages pageBaseType="System.Web.Mvc.WebViewPage"> 
     <namespaces> 
     <add namespace="System.Web.Mvc" /> 
     <add namespace="System.Web.Mvc.Ajax" /> 
     <add namespace="System.Web.Mvc.Html" /> 
     <add namespace="System.Web.Optimization"/> 
     <add namespace="System.Web.Routing" /> 
     </namespaces> 
    </pages> 
    </system.web.webPages.razor> 

    <system.web> 
    <compilation targetFramework="4.0"> 
     <assemblies> 
     <add assembly="System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> 
     </assemblies> 
    </compilation> 
    </system.web> 
</configuration> 

này sẽ đánh lừa Visual Studio vào suy nghĩ rằng nó là một dự án web và cho phép Intellisense.

+0

Tôi đã làm điều đó. Intellisense hoạt động tốt, ngoại trừ System.Web.Không gian tên tối ưu hóa. – Marcel

+1

Bạn có thấy '' trong ví dụ của tôi không? Bạn có nó trong của bạn? –

+0

Có, tôi có. Tôi quên đề cập đến điều đó trong câu hỏi, xin lỗi! – Marcel

7

Tôi đã gặp lỗi này trong chế độ xem được tạo trước trong dự án asp mvc để giải quyết, tôi đã cài đặt Microsoft.Web.Optimization bằng nuget.

Từ trình đơn Công cụ, chọn Trình quản lý gói thư viện và sau đó nhấp vào Bảng điều khiển trình quản lý gói. Nhập lệnh sau để cập nhật Đóng bó và Thu nhỏ:

Install-Package Microsoft.Web.Optimization -Pre 

một số additionals đây http://forums.asp.net/t/1812274.aspx/1

+0

Tôi nhập Gói cài đặt này ở đâu? – guiomie

+0

quản lý gói nuget studio có trong menu công cụ –

1

@Vladimir, Tôi đang sử dụng Visual Studio 2013, và đã có một chút thay đổi dòng của bạn để:

Install- Gói Microsoft.AspNet.Web.Optimization

Điều này đã khắc phục sự cố cho tôi.

0

Sau đây:

Install-Package Microsoft.AspNet.Web.Optimization 

hoạt động tốt đối với tôi.

0
Install-Package Microsoft.AspNet.Web.Optimization -version 1.1.0.0 

nếu dự án của bạn cần phiên bản được chỉ định, vui lòng thêm -version ... để chọn phiên bản thực. Nó sẽ hữu ích cho bạn.

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