2015-05-26 46 views
0

我想寫一些非常基本的MVC控制器代碼來讀取位於wwwroot子文件夾中的direcory中的文件。如何在MVC中讀取文件dnx45 11.0.0-beta4控制器

當我將此代碼添加到我的控制器:

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 Microsoft.AspNet.Http; 

然後所有heck爆發出來,因爲雖然HttpContext解決'當前'屬性不。此外,添加該包打破了Startup.cs代碼,因爲在配置方法IApplicationBuild參數不能被解決,因爲VS說:

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讀取一個文件。

感謝您提供的任何幫助。

+0

David Fowler經常說「不要過河!」不要在同一個項目中包含beta5和beta4。我們所有與貝塔斯一起工作的人都曾經這樣做過,儘管...... –

回答

0

檢查你的軟件包版本。我只是設法通過將所有我的.NET nuget包修改爲「1.0.0- *」來解決這個錯誤。如果有一些,請確保爲類庫項目執行相同操作。

例如,在我的情況下,我有一個「商業」類庫,它使用Microsoft.AspNet.Http和我的Test類庫,它們使用相同的,所以只要確保它們的版本都是「1.0」。 0- *」

更新: 請忽略以前的評論,因爲這會只引用了最新的包,這顯然可以創造很多的問題!

我設法通過引用解決方案中所有項目中的相同包來解決此問題。還要確保當你在MVC項目中引用項目並且該項目使用Microsoft.AspNet.Http(例如它包含中間件)時,請確保該項目引用的是Microsoft.AspNet.MVC而不是Microsoft.ASPNET。斷點續傳。

這給我也運行我的xunit測試創建了一個問題。檢查這個問題了解更多信息xUnit.net v2 not discovering .NET Core Tests in Visual Studio 2015

相關問題