この奇妙なエラーはVS 2015の.cshtmlファイルでのみ発生します。VS2013でプロジェクトを開いたときにエラーが表示されません。
エラーCS0246タイプまたは名前空間名「System」が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありませんか?)
これが私の参考文献です:
<ItemGroup>
<Reference Include="Microsoft.CSharp" />
<Reference Include="Sitecore.Kernel, Version=7.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>N:\XXX\Sitecore.Kernel.dll</HintPath>
</Reference>
<Reference Include="Sitecore.Mvc">
<HintPath>N:\XXX\Sitecore.Mvc.dll</HintPath>
</Reference>
<Reference Include="System.Web.DynamicData" />
<Reference Include="System.Web.Entity" />
<Reference Include="System.Web.ApplicationServices" />
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Core" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Web.Extensions" />
<Reference Include="System.Web.Helpers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>N:\XXX\System.Web.Helpers.dll</HintPath>
</Reference>
<Reference Include="System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>N:\XXX\System.Web.Mvc.dll</HintPath>
</Reference>
<Reference Include="System.Web.Providers">
<HintPath>N:\XXX\System.Web.Providers.dll</HintPath>
</Reference>
<Reference Include="System.Web.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>N:\XXX\System.Web.Razor.dll</HintPath>
</Reference>
<Reference Include="System.Web.WebPages, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>N:\XXX\System.Web.WebPages.dll</HintPath>
</Reference>
<Reference Include="System.Web.WebPages.Deployment, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>N:\XXX\System.Web.WebPages.Deployment.dll</HintPath>
</Reference>
<Reference Include="System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>N:\XXX\System.Web.WebPages.Razor.dll</HintPath>
</Reference>
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Drawing" />
<Reference Include="System.Web" />
<Reference Include="System.Xml" />
<Reference Include="System.Configuration" />
<Reference Include="System.Web.Services" />
<Reference Include="System.EnterpriseServices" />
これの原因は何でしょうか?
私が作成したこの質問も参照してください。同じ問題です: タイプまたは名前空間名「System」が見つかりませんでした
VS 2015のMVC 4で多くのCSHTML Intellisenseの問題があり、MVC 5へのアップグレードのみを選択しました。ただし、MVC 4はまだ完全に機能するわけではなく、次のように機能します: Visual Studio 2015はMVCの古いバージョンをサポートしていますか? 。
これはVS 2013とVS 2015の両方の問題です。Razorインテリセンスが.cshtmlで機能するには、ビルド出力 must をdefault build pathに設定する必要がありますファイル。問題を再現し、代替案について議論するこの優れた記事をご覧ください。 http://www.dennisonpro.info/managing-intellisense-in-razor-views-with-mvc-5-using-custom-builds-in-visual-studio-2013/
そのため、MVCプロジェクトのビルドパスはbin\
に設定する必要があります。出力を別の場所に移動する必要がある場合は、bin\
から別の場所にファイルをコピーするビルド後のステップを作成する必要があります。
そのソリューションのすべてのプロジェクトでbinフォルダーとobjフォルダーを削除すると、うまくいきました。
古いバージョンのVisual Studioで生成された古いファイルがあり、新しいバージョンのVisual Studioと互換性がないようです。
問題を管理しました。ビルドパスを「\ bin」ではなく「c:...\bin」に設定しました。これは、プロジェクトのルートにweb.configがなく、VSが私のプロジェクトをWebプロジェクトとして識別しなかったために発生したと思います。ビルドルートを変更してプロジェクトをリロードした後、エラーはなくなり、インテリセンスが表示されました。