81

Webサイトをサーバーにアップロードしようとしました。ローカルホストでは正常に機能していたので、localhostwwwrootフォルダー内のすべてをサーバーにアップロードし、接続文字列を変更しました。

しかし、このエラーがあります:

Exception information: 
    Exception type: InvalidOperationException 
    Exception message: The pre-application start initialization method Start on type RouteDebug.PreApplicationStart threw an exception with the following error message: Could not load file or assembly 'Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified..
   at System.Web.Compilation.BuildManager.InvokePreStartInitMethods(ICollection`1 methods)
   at System.Web.Compilation.BuildManager.CallPreStartInitMethods()
   at System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException)

Could not load file or assembly 'Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
   at RouteDebug.PreApplicationStart.Start()

プロジェクトはでしたnopcommerce

このエラーを解決するにはどうすればよいですか?

4

20 に答える 20

58

You will need to include the dll with your project and add a reference to it as well.

Here is a link to a similar issue already on Stack: MVC3 Deployment Dependency Problems

于 2012-10-31T01:17:39.687 に答える
40

参照クリーニングを実行した後、それは削除されましMicrosoft.Web.Infrastructureたが、packages.configファイルからは削除されていません。を使用して再度追加しようとした後Package Manager Console、Visual Studioは既にインストールされていると表示しますが、削除されたためfalseです。

packages.config次に、ファイル内のコード行を削除しました

<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45" />

コマンドを再度実行しました

PM> Install-Package Microsoft.Web.Infrastructure

この後、正常に動作します。

于 2015-04-06T20:12:10.670 に答える
33

ここからダウンロードしたAspNetMVC3ToolsUpdateSetupをインストールすると、参照を追加せずにこの問題を解決できます

于 2013-01-14T16:26:17.210 に答える
32

答えの数にもかかわらず、私は私見が物事を少し明確にする別のものを追加します。

すでに述べたRobとwrightmailはNuGetパッケージです(リンクは不要です。NuGetパッケージマネージャーにあります)Microsoft.Web.Infrastructure

どうやら、それはあなたのプロジェクトによって参照され、突然消えました。いくつかの理由が存在する可能性がありますが、重要なことは、VisualStudioで自動パッケージ復元を有効にしたにもかかわらず次のことを行うことです。

  • ソリューションのNuGetパッケージを管理します(ソリューションエクスプローラーのコンテキストメニュー)、
  • NuGetが不足しているパッケージ(設定)をダウンロードできるようにします。
  • Visual Studio(設定)でのビルド中に不足しているパッケージを自動的にチェックし、

特定のパッケージでは、手動での再インストールが必要になる場合があります。何がNuGetを混乱させるのか、おそらく手動で参照を削除するのかはわかりませんが、このような場合に通常適用する解決策は次のとおりです。次のPMコンソールは、元のバージョンを保持しながら(おそらく既存の新しいバージョンに更新しないで)パッケージを復元するのに役立ちます。

更新-パッケージMicrosoft.Web.Infrastructure-再インストール

プロジェクトで使用していた可能性のある「古い」機能を削除する可能性のある新しいバージョンで既存のパッケージを誤って上書きしたくない場合は、バージョンの保存が必要になることがあります。

そして、少し長いものにもかかわらず、バージョンが変更されないことの証拠として、コマンドが実行されたときの出力は次のとおりです。

PM> Update-Package Microsoft.Web.Infrastructure -Reinstall
Attempting to gather dependencies information for multiple packages with respect to project 'Samples.NuGet\DemoApp\DemoApp', targeting '.NETFramework,Version=v4.5.2'
Attempting to resolve dependencies for multiple packages
Resolving actions install multiple packages
...
Package removal starts here...
...
Removed package 'Microsoft.AspNet.Web.Optimization 1.1.3' from 'packages.config'
Successfully uninstalled 'Microsoft.AspNet.Web.Optimization 1.1.3' from DemoApp
Removed package 'WebGrease 1.5.2' from 'packages.config'
Executing script file 'D:\Projects\DemoApp\packages\WebGrease.1.5.2\tools\uninstall.ps1'
Successfully uninstalled 'WebGrease 1.5.2' from DemoApp
...
More package removals here. Omitted for brevity...
...
Removed package 'Microsoft.Web.Infrastructure 1.0.0.0' from 'packages.config'
Successfully uninstalled 'Microsoft.Web.Infrastructure 1.0.0.0' from DemoApp
...
More package removals here. Omitted for brevity...
...
Removed package 'Antlr 3.4.1.9004' from 'packages.config'
Successfully uninstalled 'Antlr 3.4.1.9004' from MvcLenseApp
Package 'Antlr.3.4.1.9004' already exists in folder 'D:\Projects\Lense.Mvc5\packages'
--- Install packages (in reverse order) ---
Package 'Antlr.3.4.1.9004' already exists in folder 'D:\Projects\DemoApp\packages'
Added package 'Antlr.3.4.1.9004' to 'packages.config'
Successfully installed 'Antlr 3.4.1.9004' to DemoApp
...
More package installs here. Omitted for brevity...
...
Package 'Microsoft.Web.Infrastructure.1.0.0' already exists in folder 'D:\Projects\Lense.Mvc5\packages'
Added package 'Microsoft.Web.Infrastructure.1.0.0' to 'packages.config'
Successfully installed 'Microsoft.Web.Infrastructure 1.0.0' to MvcLenseApp
...
More package installs here. Omitted for brevity...
...
Package 'WebGrease.1.5.2' already exists in folder 'D:\Projects\DemoApp\packages'
Added package 'WebGrease.1.5.2' to 'packages.config'
Executing script file 'D:\Projects\DemoApp\packages\WebGrease.1.5.2\tools\install.ps1'
Successfully installed 'WebGrease 1.5.2' to DemoApp
Package 'Microsoft.AspNet.Web.Optimization.1.1.3' already exists in folder 'D:\Projects\DemoApp\packages'
Added package 'Microsoft.AspNet.Web.Optimization.1.1.3' to 'packages.config'
...
End of package re-install. 
...
Successfully installed 'Microsoft.AspNet.Web.Optimization 1.1.3' to DemoApp
PM> 

もちろん、すべてのパッケージを再インストールする場合は、ここここでNuGetの更新/インストールコマンドに精通する必要があります。

于 2015-09-08T06:17:27.237 に答える
27

開発ボックスで機能したにもかかわらず、アセンブリがプロジェクトに追加されていないことがわかりました。NuGetでMicrosoft.Web.Infrastructureを検索し、そこからインストールします。次に、[ローカルコピー]が選択されていることを確認します。

于 2013-06-11T23:54:46.043 に答える
8

既存のプロジェクトを使用するVS2015の新しいWindows10マシンでこの問題が発生しました。パッケージマネージャー3.4.4。パッケージの復元が有効になっています。

復元が完全に機能していないようです。パッケージマネージャーのコマンドラインで次のコマンドを実行する必要がありました

Update-Package -ProjectName "YourProjectName" -Id Microsoft.Web.Infrastructure -Reinstall

これにより、ソリューションファイルに次の変更が加えられましたが、復元では行われませんでした。

<Reference Include="Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <HintPath>..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll</HintPath>
  <Private>True</Private>
</Reference>

上記の要素をソリューションファイルのItemGroupセクションに追加するだけで、.. \ packages \ Microsoft.Web.Infrastructure.1.0.0.0 \ lib \ net40\Microsoft.Web.Infrastructure.dllが存在する場合にも問題が解決されます。

-Reinstallを実行する方が簡単ですが、パッケージの復元との違いを理解しておくとよいでしょう。

于 2018-05-23T08:24:28.823 に答える
5

https://www.microsoft.com/web/platform/からWebプラットフォームをインストールしてみてください

それが役に立てば幸い。

于 2012-10-31T01:13:19.117 に答える
5

ResharperはMicrosoft.Web.Infrastructureを未使用の参照として検出したため、削除しました。ローカルでは正常に動作していましたが、開発者に公開した後、同じエラーが発生しました。

結論、Resharperによって未使用としてマークされた参照を削除するときは注意してください

于 2015-05-30T03:29:15.703 に答える
3

私も同様の問題を抱えていました。NuGetはパッケージが正常にインストールされたことを示しましたが、参照がプロジェクトに追加されませんでした。

パッケージマネージャーがすでにインストールされていると言い続けたため、実行<PM> Install-Package Microsoft.Web.InfraStructureも役に立ちませんでした

最後に、csprojファイルを編集して次の行を追加することにより、手動で追加しました。

 <Reference Include="Microsoft.Web.Infrastructure">
  <HintPath>..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll</HintPath>
  <Private>True</Private>
</Reference>

それで問題は解決しました。

于 2015-12-16T09:45:52.557 に答える
2

アプリケーションをホストしているサーバーにASP.NETMVCフレームワークをダウンロードする必要があります。ここからダウンロードしてインストールするだけの簡単な修正です(これはMVC 3フレームワークhttp://www.asp.net/mvc/mvc3です)。

于 2012-11-09T15:29:02.343 に答える
2

私にとってMicrosoft.Web.Infrastructure.dllはbinフォルダーにありませんでしたが、プロジェクトでローカルにコピーするように設定されていませんでした。ソリューション内の別のプロジェクトからdllをコピーすると、ページが読み込まれます。

于 2017-06-20T08:26:16.393 に答える
2

まず、package.configからMicrosoft.Web.Infrastructureを削除します。

コマンドを再度実行しました

PM> Install-Package Microsoft.Web.Infrastructureを実行し、CopyLocalプロパティがtrueであることを確認します。

于 2018-10-29T10:05:08.497 に答える
1

非常に簡単な解決策:

Visual Studioで、[ツール]/[ライブラリパッケージマネージャー]/[パッケージマネージャーコンソール]に移動します

<PM> Install-Package Microsoft.Web.InfraStructure

よいひとときを

于 2014-11-30T08:26:02.500 に答える
1

これが私のシナリオでした。

プロジェクトA、B、C..Nを含むマルチプロジェクトソリューションがありました。

selectlistプロジェクトBは、オブジェクトのファクトリを含むコードライブラリでした。

プロジェクトは開発中に期待どおりに実行されますが、テスト環境に公開すると、発生したエラーが発生しました。

Could not load file or assembly 'Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.

何が起こったのかは、nugetパッケージマネージャーを介して、次の依存関係をインストールする「MicrosoftASP.NETMVC」を誤ってインストールしました。

  • Microsoft.AspNet.Razor
  • Microsoft.AspNet.WebPages

低く、見よ、Microsoft.AspNet.WebPagesは「Microsoft.Web.Infrastructure」に依存しています。

私の解決策は、上記の3つのパッケージ(MVC、Razor、WebPages)をアンインストールしてから、参照を右クリック>参照を追加>アセンブリ>拡張機能>System.Web.MVCです。

于 2015-07-31T17:26:15.690 に答える
1

参照プロパティの[ローカルコピー]をFalseに設定してから、Trueに戻す必要がありました。これを行うと、.csprojファイルにPrivateTrue設定が追加されました。

<Reference Include="Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">      <HintPath>..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll</HintPath>
      <Private>True</Private>
    </Reference>

「ローカルコピー」がTrueと表示されたので、これはすでに設定されていると思いました。

于 2020-02-25T23:27:48.290 に答える
0

プロジェクトで何が起こったのかわかりませんが、DLLへの間違ったパスを参照していました。Nugetはそれを適切にインストールし、他のパッケージと一緒に実際に私のファイルシステムにありましたが、正しく参照されていませんでした。

このpackagesフォルダーは、私のプロジェクトから2つ上のディレクトリに存在し、パスを。で開始することによって1つだけ上に移動していました..\packages\。最初にパスを変更した..\..\packages\ところ、問題が解決しました。

于 2017-10-04T14:43:03.950 に答える
0

私のマシンでは、Nuget依存関係が正しくダウンロードされておらず、nugetパッケージ内のlibフォルダーが存在しなかったため、エラーが発生しました。

ここに画像の説明を入力してください

パッケージフォルダー内のNugetパッケージの名前を変更し、Nugetが必要なlibフォルダーを使用して正しく再ダウンロードしました。

ここに画像の説明を入力してください

于 2018-08-10T13:37:33.267 に答える
0

場合によっては、プロジェクト/ソリューションをクリーンアップし、物理的に削除bin/obj/て再構築すると、このようなエラーが解決されます。これは、たとえば、一部のパッケージと参照がインストール/追加されてから削除され、アーティファクトが残っている場合に発生する可能性があります。

それは私に起こりましたMicrosoft.Web.Infrastructure:最初は、プロジェクトはそのアセンブリを必要としませんでした。いくつかの実験の後、最終的には正味の効果がゼロになるはずでしたが、この例外が発生しました。上記の手順で、未使用の依存関係をインストールすることなく解決しました。

于 2019-08-03T06:29:15.397 に答える
0

私はこの問題を抱えていました。DLLをプロジェクトに含めましたが、ローカルコピーへの設定はデフォルトでtrueでした。そのDLLは長い間プロジェクトに含まれていたので、なぜそれが始まったのかわかりません。ReSharperが削除する可能性があるという言及をいくつか聞いたことがありますが、未使用の参照削除を実行したとは言えません。

私を助けてくれたのは次のとおりです。-プロジェクトで「Update-PackageMicrosoft.Web.Infrastructure-Reinstall」を実行すると、ソリューション全体が更新されましたが、それ自体では役に立ちませんでした。-次に、プロジェクトの参照を調べて、ローカルコピーをfalseに設定してから、trueに戻しました。これにより、実際にはDLL参照の下でCSPROJファイルに次の行が追加されました:True。または、線に沿った何か...いずれにせよ、ビルドは期待どおりにファイルをコピーしていました。

于 2020-04-08T05:03:57.513 に答える
0

だから、これがVS2019を使って私のために働いたものです。Microsoft.Web.Infrastructureが同じソリューションの別のプロジェクトにあるときに、あるプロジェクトでNugetパッケージを更新しようとすると、このエラーが発生していました。プロジェクトのPackagesフォルダーからMicrosoft.Web.Infrastructure.1.0.0.0フォルダーを削除する必要がありました。nugetを介して再インストールすると、すべてが再び機能し始めました。バカバカしく。

于 2020-05-29T15:37:18.617 に答える