7

各モジュール(=領域)がクラスライブラリであるモジュール式のMVC4アプリケーションを構築しています。モデルとコントローラが.dllにコンパイルされると、ビューは適切なフォルダにコピーされます。実行時に、すべて正常に動作します。設計時には迷惑な問題が1つ残っています。クラスライブラリ内のかみそりビューを編集するとき、Visual StudioはSystem.Web.Optimization名前空間を認識しません。System.Web.Optimizationをクラスライブラリ内のカミソリビューで使用するには

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

Iは、ルートでのsystem.web /編集部と内側のweb.configにアセンブリを追加しようとした:

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

私はあまりにも、特定のバージョンなしにそれを試してみました。どちらの方法で問題を解決しますが、(かみそりビューの最初の行に表示)asp.netのランタイムエラーをトリガしませんでした:

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. 

アセンブリがプロジェクトで参照されると「ローカルコピー」が設定されています「真」に。また、これはカミソリの設定セクションに名前空間として追加されています。

今後、他のアセンブリで発生する一般的な問題と思われます。

編集: Intellisenseをクラスライブラリ内の剃刀のように見せるための一般的なセットアップを行いました。 VS2010が最適化ネームスペースを認識しないことを除いて、これまでのところすべてが機能します。

答えて

7

以下の内容(this blog postから取られた)を使用して、クラスライブラリプロジェクト(レイザービューが含まれている1)のルートにweb.configファイル追加します。これは、ということを考えることにVisual Studioのをだまします

<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> 

をそれはWebプロジェクトであり、Intellisenseを有効にします。

+0

私は既にそれをしました。 IntellisenseはSystem.Webを除いて正常に動作します。最適化ネームスペース。 – Marcel

+1

私の例では、 'に気づいたのですか?あなたはあなたの中にそれを持っていますか? –

+0

はい、あります。私はその質問に言及するのを忘れて、申し訳ありません! – Marcel

7

asp mvcプロジェクトの事前ビルドビューでこのエラーが発生しました。解決策として、Microsoft.Web.Optimizationをnugetとともにインストールしました。

[ツール]メニューから、[ライブラリパッケージマネージャ]を選択し、[パッケージマネージャコンソール]をクリックします。バンドルと縮小化更新するには、次のコマンドを入力します。ここ

Install-Package Microsoft.Web.Optimization -Pre 

一部additionals http://forums.asp.net/t/1812274.aspx/1

+0

どこにこのInstall-Packageを入力しますか? – guiomie

+0

ナゲットパッケージマネージャ スタジオツールメニューにあります –

1

@Vladimirを、私は、Visual Studio 2013を使用して、わずかにあなたの行を変更しなければならなかったのです:

Install-パッケージMicrosoft.AspNet.Web.Optimization

これは私のために修正されました。

0

Install-Package Microsoft.AspNet.Web.Optimization 

が私のために正常に動作します。

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

プロジェクトに指定されたバージョンが必要な場合は、trueバージョンを選択するために-version ...を追加してください。それはあなたのために役立つでしょう。

関連する問題