MVC-3-converted-to-4 앱에 대한 System.Web.Optimization에 대한 참조를 추가하는 방법
최근에 MVC 3에서 MVC 4 베타로 변환 한 프로젝트에서 새로운 번들링 기능을 사용하려고합니다. global.asax에는 한 줄의 코드 BundleTable.Bundles.RegisterTemplateBundles();
가 필요 using System.Web.Optimization;
하며 맨 위에 필요합니다 .
이렇게하면 "조립품 참조가 누락 되었습니까?"라는 빨간색 구불 구불 한 선이 나타납니다. 참조를 추가하고 대화 상자에서 .NET 탭을 클릭하고 AZ에서 정렬하면 보이지 않습니다 System.Web.Optimization
.
이 참조를 내 프로젝트에 어떻게 추가합니까? 감사.
Microsoft.Web.Optimization 패키지는 이제 더 이상 사용되지 않습니다. ASP.NET (MVC) 4 이상에서는 Microsoft ASP.NET 웹 최적화 프레임 워크를 설치해야합니다.
nuget 에서 패키지를 설치하십시오 .
Install-Package Microsoft.AspNet.Web.Optimization
App_Start \ BundleConfig.cs에서 번들을 만들고 구성하십시오.
public class BundleConfig { public static void RegisterBundles(BundleCollection bundles) { bundles.Add(new ScriptBundle("~/Scripts/jquery").Include( "~/Scripts/Lib/jquery/jquery-{version}.js", "~/Scripts/Lib/jquery/jquery.*", "~/Scripts/Lib/jquery/jquery-ui-{version}.js") ); bundles.Add(new ScriptBundle("~/Scripts/knockout").Include( "~/Scripts/Lib/knockout/knockout-{version}.js", "~/Scripts/Lib/knockout/knockout-deferred-updates.js") ); } }
global.asax.cs의 Application_Start ()에서 RegisterBundles () 함수를 호출하십시오.
using System.Web.Optimization; protected void Application_Start() { ... BundleConfig.RegisterBundles(BundleTable.Bundles); ... }
view.cshtml에 Optimization 네임 스페이스를 포함하고 번들을 렌더링하십시오.
@using System.Web.Optimization @Scripts.Render("~/Scripts/jquery") @Scripts.Render("~/Scripts/knockout")
자세한 내용은 http://www.asp.net/mvc/overview/performance/bundling-and-minification 을 참조하십시오.
업데이트
버전 1.1.x를 사용할 수 있습니다. 릴리스 정보를 읽으십시오 : https://www.nuget.org/packages/Microsoft.AspNet.Web.Optimization
최종 릴리스 버전의 ASP.Net MVC 4에서 접근 방식은 다음과 같습니다.
nuget을 통해 Microsoft.AspNet.Web.Optimization을 설치하십시오 (프레임 워크에 의해 설치되지 않으므로).
install-package Microsoft.AspNet.Web.Optimization
Global.asax Application_Start에서 번들을 작성하십시오.
var scripts = new ScriptBundle("~/MyBundle"); scripts.IncludeDirectory("~/Scripts/MyDirectory", "*.js"); BundleTable.Bundles.Add(scripts);
"Views"web.config에 "System.Web.Optimization"네임 스페이스를 추가하십시오.
<pages pageBaseType="System.Web.Mvc.WebViewPage"> <namespaces> <add namespace="System.Web.Optimization" /> </namespaces> </pages>
view.cshtml에서 마지막 단계에서 작성된 번들에 포함을 추가하십시오.
@Scripts.Render("~/MyBundle")
디버그 모드에서 디렉토리의 모든 스크립트 파일은 개별적으로 렌더링됩니다. 릴리스 모드에서는 번들로 제공되고 축소됩니다.
nuget에서 패키지를 업데이트 (다시 설치)하면 다음 명령을 사용할 수 있습니다.
update-Package Microsoft.AspNet.Web.Optimization -reinstall
제 경우에는 tfs가 바이너리를 제외하기 때문에 tfs 문제였습니다. 너겟 PM은 너깃이 설치된 것을 찾은 다음 비슷한 문제가있는 경우 라이브러리를 업데이트하지 마십시오.
- 소스 제어로 이동
- .. \ packages \ Microsoft.Web.Optimization으로 이동하십시오.
- lib 폴더 추가 (이진 확장자 제외 제외)
- 솔루션을 업데이트하고 경로에서 dll 참조를 추가하십시오.
NB : 패키지 폴더는 yousolution.sln 파일과 같은 수준에 있습니다
다음과 같이 패키지 관리자 콘솔에서 nuget을 사용하여 System.Web.Optimization을 설치 제거하십시오.
제거 패키지 Microsoft.AspNet.Web.Optimization
그런 다음 다음을 사용하여 다시 설치하십시오.
설치 패키지 Microsoft.AspNet.Web.Optimization
이 문제를 해결할 수 있습니다.
Visual Studio를 통해 NUGet 에서 설치 Visual Studio 2010을 열고 도구-> 라이브러리 패키지 관리자-> 패키지 관리자 콘솔을 선택하십시오.
이것은 conslve를 열고 붙여 넣습니다.
Install-Package Microsoft.AspNet.Web.Optimization
입력하십시오. 그리고 당신은 끝났습니다
Global.asax application_start에서 설정 (릴리스 모드 등) :
BundleTable.EnableOptimizations = **true**;
모든 스크립트 및 스타일 파일을 개별적으로 렌더링하기 위해 최소화 모드 를 활성화하고 디버그 모드 에서 false로 변경합니다 .
'Programing' 카테고리의 다른 글
range ()보다 항상 xrange ()를 선호해야합니까? (0) | 2020.02.16 |
---|---|
VS2012에서 파일 미리보기 비활성화 (0) | 2020.02.16 |
제어의 반전 대 의존성 주입 (0) | 2020.02.16 |
인덱스로 std :: vector <>에서 요소를 지우려면 어떻게합니까? (0) | 2020.02.16 |
Windows 서버에서 포트가 열려 있는지 어떻게 확인합니까? (0) | 2020.02.16 |