1. ホーム
  2. c#

[解決済み] 型名または名前空間名 'System' が見つかりませんでした。

2022-02-04 11:52:52

質問

Visual Studio 2015 Professionalでプロジェクトを開くと、すべてのビュー(*.cshtml)で以下のエラー(およびその他)が発生します。

エラー CS0246 The type or namespace name 'System' could not be found (using directive or an assembly referenceが抜けていませんか?) 深刻度 コード 説明 プロジェクトファイル行

エラー CS0518 定義済みの型 'System.Object' が定義されていないか、インポートされていません。 深刻度コード 説明 プロジェクトファイル行

エラー CS0518 定義済み型 'System.String' が定義またはインポートされていません。

このようなリファレンスを取得しました。

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

mscorlibが参照されていないという解決策をいくつか見つけましたが、それを追加しようとすると、(csprojファイルにそれがないにもかかわらず)それはすでにそこにあると言われました。

System.dllを参照しています。

SOLUTION:

問題の管理... ビルドパスを "c:...\bin" にしていたのですが、 "\bin" ではありません。この問題は、プロジェクトのルートにweb.configがないため、VSが私のプロジェクトをWebプロジェクトとして認識しなかったために発生したと考えています。

どうすればいいですか?

あなたの問題を再現しようとしたところ、Visual Studio 2013でソリューションを作成し、vs 2015でビルドしようとしたときに同様のエラーが発生しました。

NuGet Package Managerを再インストールしたら(そしてVS 2015を閉じて開き直したら)、ビルドが成功しました。

参考文献・クレジット

NPM for VS 2015の以前のバージョンでビルドの問題に関連するSO質問がいくつかあります(つまり、私が試して解決したことを伝えているだけです)。繰り返される解決策は、通常、アップデート/再インストールNPMまたはパワーシェルで実行ポリシーを変更することです。私は、Windowsのブラックボックスをいじるのを避けるために、更新+再起動のアプローチを好む傾向があります。 https://stackoverflow.com/a/32251092/1158842 MSBuild統合ソリューションの問題もあるかもしれませんが、その場合はソリューション内のNuGetリソースから移行すればうまくいくかもしれません。

出典 https://stackoverflow.com/a/31811461/1158842