최근에 MVC 3에서 MVC 4 베타로 변환 한 프로젝트에서 새로운 번들링 기능을 사용하려고합니다. global.asax에는 한 줄의 코드 BundleTable.Bundles.RegisterTemplateBundles();
가 필요 using System.Web.Optimization;
하며 맨 위에 필요합니다 .
이렇게하면 “조립품 참조가 누락 되었습니까?”라는 빨간색 구불 구불 한 선이 나타납니다. 참조를 추가하고 대화 상자에서 .NET 탭을 클릭하고 AZ에서 정렬하면 보이지 않습니다 System.Web.Optimization
.
이 참조를 내 프로젝트에 어떻게 추가합니까?
답변
업데이트
버전 1.1.x를 사용할 수 있습니다. 릴리스 정보를 읽으십시오 : https://www.nuget.org/packages/Microsoft.AspNet.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 을 참조하십시오.
답변
최종 릴리스 버전의 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**;
DEBUG 모드 에서 축소를 활성화하고 false로 변경하여 모든 스크립트 및 스타일 파일을 개별적으로 렌더링합니다.