Gwe*_*etz 11 asp.net asp.net-mvc
我正在使用最新版本的Visual Studio Code(v0.3)来玩新的ASPNET 5测试版.我不想把VS2015 RC放在我的工作机器上.我有一个准系统(Hello World)MVC6应用程序,在找出dn*命令行工具的基础知识后我已经运行了.
现在我想提供一个静态文件.我已将Microsoft.AspNet.StaticFiles添加到我的project.json文件中并恢复了包.
我的project.json:
{
"version": "1.0.0-*",
"webroot": "wwwroot",
"exclude": [
"wwwroot"
],
"packExclude": [
"**.kproj",
"**.user",
"**.vspscc"
],
"dependencies": {
"Kestrel": "1.0.0-*",
"Microsoft.AspNet.Diagnostics": "1.0.0-*",
"Microsoft.AspNet.Mvc": "6.0.0-*",
"Microsoft.AspNet.Server.IIS": "1.0.0-*",
"Microsoft.AspNet.Server.WebListener": "1.0.0-*",
"Microsoft.AspNet.StaticFiles": "1.0.0-*"
},
"commands": {
"web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener --server.urls http://localhost:8080",
"kestrel": "Microsoft.AspNet.Hosting --server Kestrel --server.urls http://localhost:8080"
},
"frameworks": {
"dnx451": { },
"dnxcore50": { }
}
}
Run Code Online (Sandbox Code Playgroud)
我的Startup.cs:
using Microsoft.AspNet.Builder;
using Microsoft.Framework.DependencyInjection;
namespace EmailViewer
{
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
}
public void Configure(IApplicationBuilder app)
{
app.UseErrorPage();
app.UseStaticFiles();
app.UseMvcWithDefaultRoute();
app.UseWelcomePage();
}
}
}
Run Code Online (Sandbox Code Playgroud)
一切正常,直到我包含app.UseStaticFiles(),此时我收到以下错误:
System.IO.FileLoadException: Could not load file or assembly 'EmailViewer' or one of its dependencies. General Exception (Exception from HRESULT: 0x80131500)
File name: 'EmailViewer' ---> Microsoft.Framework.Runtime.Roslyn.RoslynCompilationException: C:\src\fx5\EmailViewer\Startup.cs(16,13): error CS7069: Reference to type 'IApplicationBuilder' claims it is defined in 'Microsoft.AspNet.Http', but it could not be found
at Microsoft.Framework.Runtime.Roslyn.RoslynProjectReference.Load(IAssemblyLoadContext loadContext)
at Microsoft.Framework.Runtime.Loader.ProjectAssemblyLoader.Load(AssemblyName assemblyName, IAssemblyLoadContext loadContext)
at Microsoft.Framework.Runtime.Loader.ProjectAssemblyLoader.Load(AssemblyName assemblyName)
at dnx.host.LoaderContainer.Load(AssemblyName assemblyName)
at dnx.host.DefaultLoadContext.LoadAssembly(AssemblyName assemblyName)
at Microsoft.Framework.Runtime.Loader.AssemblyLoaderCache.GetOrAdd(AssemblyName name, Func`2 factory)
at Microsoft.Framework.Runtime.Loader.LoadContext.LoadAssemblyImpl(AssemblyName assemblyName)
at Microsoft.Framework.Runtime.Loader.LoadContext.TryLoadAssembly(LoadContext context, AssemblyName assemblyName, Assembly& assembly)
at Microsoft.Framework.Runtime.Loader.LoadContext.ResolveAssembly(Object sender, ResolveEventArgs args)
at System.AppDomain.OnAssemblyResolveEvent(RuntimeAssembly assembly, String assemblyFullName)
at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks)
at System.Reflection.Assembly.Load(AssemblyName assemblyRef)
at Microsoft.AspNet.Hosting.Startup.StartupLoader.FindStartupType(String startupAssemblyName, IList`1 diagnosticMessages)
at Microsoft.AspNet.Hosting.Internal.HostingEngine.EnsureStartup()
at Microsoft.AspNet.Hosting.Internal.HostingEngine.EnsureApplicationServices()
at Microsoft.AspNet.Hosting.Internal.HostingEngine.Start()
at Microsoft.AspNet.Hosting.Program.Main(String[] args)
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Microsoft.Framework.Runtime.Common.EntryPointExecutor.Execute(Assembly assembly, String[] args, IServiceProvider serviceProvider)
at Microsoft.Framework.ApplicationHost.Program.ExecuteMain(DefaultHost host, String applicationName, String[] args)
at Microsoft.Framework.ApplicationHost.Program.Main(String[] args)
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Microsoft.Framework.Runtime.Common.EntryPointExecutor.Execute(Assembly assembly, String[] args, IServiceProvider serviceProvider)
at dnx.host.Bootstrapper.RunAsync(List`1 args, IRuntimeEnvironment env)
at dnx.host.RuntimeBootstrapper.ExecuteAsync(String[] args)
at dnx.host.RuntimeBootstrapper.Execute(String[] args)
Microsoft.Framework.Runtime.Roslyn.RoslynCompilationException: C:\src\fx5\EmailViewer\Startup.cs(16,13): error CS7069: Reference to type 'IApplicationBuilder' claims it is defined in 'Microsoft.AspNet.Http', but it could not be found
at Microsoft.Framework.Runtime.Roslyn.RoslynProjectReference.Load(IAssemblyLoadContext loadContext)
at Microsoft.Framework.Runtime.Loader.ProjectAssemblyLoader.Load(AssemblyName assemblyName, IAssemblyLoadContext loadContext)
at Microsoft.Framework.Runtime.Loader.ProjectAssemblyLoader.Load(AssemblyName assemblyName)
at dnx.host.LoaderContainer.Load(AssemblyName assemblyName)
at dnx.host.DefaultLoadContext.LoadAssembly(AssemblyName assemblyName)
at Microsoft.Framework.Runtime.Loader.AssemblyLoaderCache.GetOrAdd(AssemblyName name, Func`2 factory)
at Microsoft.Framework.Runtime.Loader.LoadContext.LoadAssemblyImpl(AssemblyName assemblyName)
at Microsoft.Framework.Runtime.Loader.LoadContext.TryLoadAssembly(LoadContext context, AssemblyName assemblyName, Assembly& assembly)
at Microsoft.Framework.Runtime.Loader.LoadContext.ResolveAssembly(Object sender, ResolveEventArgs args)
at System.AppDomain.OnAssemblyResolveEvent(RuntimeAssembly assembly, String assemblyFullName)
Run Code Online (Sandbox Code Playgroud)
我尝试过使用这些版本:
我无法弄清楚我做错了什么.有任何想法吗?提前致谢!
小智 29
在asp.net MVC6 rc1中,
将以下行添加到project.json的'dependencies'部分:
"Microsoft.AspNet.StaticFiles": "1.0.0-rc1-final"
Run Code Online (Sandbox Code Playgroud)
小智 8
在ASP.NET MVC6 RC2中,将以下行添加到project.json"dependencies"部分:
"Microsoft.AspNetCore.StaticFiles": "1.0.0-rc2-final"
Run Code Online (Sandbox Code Playgroud)
在beta6/beta5中,它已更改如下:
//app.UseStaticFiles();
app.UseMiddleware<StaticFileMiddleware>(new StaticFileOptions());
Run Code Online (Sandbox Code Playgroud)
从beta4升级到beta5也不是最简单的事情,但它有可能..
如果您的.net Core应用程序使用csproj,请添加以下行:
<PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="1.1.1" />
Run Code Online (Sandbox Code Playgroud)
或运行命令@Steve:
dotnet add package Microsoft.AspNetCore.StaticFiles
Run Code Online (Sandbox Code Playgroud)
对于.net核心视觉工作室代码
在项目根文件夹中打开终端窗口或命令提示符并安装Microsoft.AspNetCore.StaticFiles包
dotnet add package Microsoft.AspNetCore.StaticFiles
对于Visual Studio
使用nuget添加Microsoft.AspNetCore.StaticFiles包
为我工作
| 归档时间: |
|
| 查看次数: |
14535 次 |
| 最近记录: |