0

wwwrootサブフォルダーにあるディレクトリ内のファイルを読み取るための、かなり基本的なMVCコントローラーコードを書き込もうとしています。

このコードをコントローラーに追加すると:

String path = HttpContext.Current.Server.MapPath("~/Data/data.html");

VS は、HttpContext が "Microsoft.AspNet.Http.Abstractions": "1.0.0-beta5-11495" で利用可能であることを教えてくれるので、Visual Studio のクイック ヘルパーを使用して、それを project.json ファイルに追加するオプションを選択します。また、この using ステートメントをコントローラー クラスに追加します。

using Microsoft.AspNet.Http;

その後、HttpContext は解決しますが、'Current' プロパティは解決しないため、すべてが発生します。さらに、そのパッケージを追加すると Startup.cs コードが壊れます。これは、VS が次のように述べているため、Configure メソッドの IApplicationBuild パラメーターを解決できないためです。

The type 'IApplicationBuilder' exists in both 
'Microsoft.AspNet.Http.Abstractions, Version=1.0.0.0, 
Culture=neutral, PublicKeyToken=null' and 
'Microsoft.AspNet.Http, Version=1.0.0.0, 
Culture=neutral, PublicKeyToken=null'   
VS_MVCWebApp.DNX 4.5.1

新しいdnxフレームワークを使用してこれを正しく行っていない可能性があります。その場合、正しいアプローチは何ですか?

一日の終わりに、dnx451 フレームワークの 1.0.0-beta4 を使用してコントローラーのファイルを読み込みたいと思います。

ご協力いただきありがとうございます。

4

1 に答える 1

0

パッケージのバージョンを確認してください。問題のすべての.NET nugetパッケージを「1.0.0-*」に変更することで、このエラーを修正できました。いくつかある場合は、クラス ライブラリ プロジェクトに対しても同じことを行ってください。

たとえば、私の状況では、Microsoft.AspNet.Http を使用している「ビジネス」クラス ライブラリと、同じものを使用している Test クラス ライブラリがあるため、両方のバージョンが「1.0.0-*」であることを確認してください。

更新: 以前のコメントは無視してください。これは、明らかに多くの問題を引き起こす可能性のある最新の利用可能なパッケージのみを参照するためです!

ソリューションのすべてのプロジェクトで同じパッケージを参照することで、これを修正できました。また、MVC プロジェクトでプロジェクトを参照し、そのプロジェクトが Microsoft.AspNet.Http を使用している (たとえば、ミドルウェアが含まれている) 場合は、このプロジェクトが Microsoft.ASPNET ではなく Microsoft.AspNet.MVC を参照していることを確認してください。 Http。

これは、xunit テストの実行にも問題を引き起こしました。詳細については、この質問を確認してくださいxUnit.net v2 が Visual Studio 2015 で .NET Core テストを検出しない

于 2015-05-30T18:01:25.737 に答える