Sto giocando attorno al nuovo beta di ASPNET 5 utilizzando l'ultima versione di Visual Studio Code (v0.3). Non voglio mettere il VS2015 RC sulla mia macchina da lavoro. Ho un'app MVC6 barebone (Hello World) che ho ottenuto dopo aver scoperto le basi degli strumenti della riga di comando dn *.MVC6 Impossibile trovare app.UseStaticFiles() nell'avvio
Ora voglio servire un file statico. Ho aggiunto Microsoft.AspNet.StaticFiles al mio file project.json e ho ripristinato i pacchetti.
mio 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": { }
}
}
mio 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();
}
}
}
Tutto funziona bene fino a che non includo app.UseStaticFiles() a questo punto ricevo il seguente errore:
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)
Ho provato a utilizzare queste versioni:
- 1.0.0-beta4
- 1.0.0-beta6-12114
io non riesco a capire quello che sto facendo male. Qualche idea? Grazie in anticipo!
VS 2015 RC ha una licenza Go Live - significa che è supportato per il lavoro di produzione. –