Search code examples
c#asp.net-corednu

dnu publish - output


I currently have a C# web app project running in Visual Studio. I read this article which states that its possible to run your web application on a clean maachine that does not have visual studio or dnx installed. Here is what I did with my project

 C:\Users\VmwareX64\Documents\Myapp\src\Myapp> dnu publish --runtime active

This is the output that I got.

Microsoft .NET Development Utility CLR-x86-1.0.0-beta7-15532

Copying to output path C:\Users\VmwareX64\Documents\Myapp\src\Myapp\bin\output
Using Package dependency EntityFramework.Core 7.0.0-beta6
Using Package dependency EntityFramework.SqlServer 7.0.0-beta6
Using Package dependency EntityFramework.Commands 7.0.0-beta6
Using Package dependency Microsoft.AspNet.Mvc 6.0.0-beta6
Using Package dependency Microsoft.AspNet.Owin 1.0.0-beta6
Using Package dependency Microsoft.AspNet.Server.IIS 1.0.0-beta6
Using Package dependency Microsoft.AspNet.Server.WebListener 1.0.0-beta6
Using Package dependency Microsoft.AspNet.Server.Kestrel 1.0.0-beta6
Using Package dependency Microsoft.AspNet.StaticFiles 1.0.0-beta6
Using Package dependency Microsoft.Framework.Configuration.Json 1.0.0-beta6
Using Package dependency Microsoft.Framework.Configuration.UserSecrets 1.0.0-beta6
Using Package dependency Microsoft.Framework.Logging.Console 1.0.0-beta6
Using Package dependency Microsoft.Net.Http 2.2.29
Using Package dependency Mono.Zeroconf.Providers.Bonjour 0.95
Using Package dependency sharpcompress 0.11.1
Using Package dependency Ix-Async 1.2.4
Using Package dependency Microsoft.Framework.Caching.Abstractions 1.0.0-beta6
Using Package dependency Microsoft.Framework.Caching.Memory 1.0.0-beta6
Using Package dependency Microsoft.Framework.DependencyInjection 1.0.0-beta6
Using Package dependency Microsoft.Framework.DependencyInjection.Abstractions 1.0.
Using Package dependency Microsoft.Framework.Logging 1.0.0-beta6
Using Package dependency Microsoft.Framework.Logging.Abstractions 1.0.0-beta6
Using Package dependency Microsoft.Framework.OptionsModel 1.0.0-beta6
Using Package dependency Remotion.Linq 2.0.0-alpha-004
Using Package dependency System.Collections.Immutable 1.1.37-beta-23109
Using Package dependency EntityFramework.Relational 7.0.0-beta6
Using Package dependency EntityFramework.Relational.Design 7.0.0-beta6
Using Package dependency Microsoft.AspNet.Hosting 1.0.0-beta6
Using Package dependency Microsoft.Framework.Runtime.Abstractions 1.0.0-beta6
Using Package dependency Microsoft.AspNet.Mvc.ApiExplorer 6.0.0-beta6
Using Package dependency Microsoft.AspNet.Mvc.Cors 6.0.0-beta6
Using Package dependency Microsoft.AspNet.Mvc.DataAnnotations 6.0.0-beta6
Using Package dependency Microsoft.AspNet.Mvc.Formatters.Json 6.0.0-beta6
Using Package dependency Microsoft.AspNet.Mvc.Localization 6.0.0-beta6
Using Package dependency Microsoft.AspNet.Mvc.Razor 6.0.0-beta6
Using Package dependency Microsoft.AspNet.Mvc.ViewFeatures 6.0.0-beta6
Using Package dependency Microsoft.AspNet.Http 1.0.0-beta6
Using Package dependency Microsoft.AspNet.Loader.IIS 1.0.0-beta6
Using Package dependency Microsoft.AspNet.Loader.IIS.Interop 1.0.0-beta6
Using Package dependency Microsoft.Net.Http.Headers 1.0.0-beta6
Using Package dependency Microsoft.Net.Http.Server 1.0.0-beta6
Using Package dependency Microsoft.AspNet.FileProviders.Abstractions 1.0.0-beta6
Using Package dependency Microsoft.AspNet.Hosting.Abstractions 1.0.0-beta6
Using Package dependency Microsoft.AspNet.Http.Extensions 1.0.0-beta6
Using Package dependency Microsoft.Framework.WebEncoders 1.0.0-beta6
Using Package dependency Microsoft.Framework.Configuration 1.0.0-beta6
Using Package dependency Newtonsoft.Json 6.0.6
Using Package dependency Microsoft.Bcl 1.1.10
Using Package dependency Microsoft.Bcl.Build 1.0.14
Using Package dependency Mono.Zeroconf 0.95
Using Package dependency Microsoft.Framework.Configuration.Abstractions 1.0.0-beta
Using Package dependency Microsoft.Framework.Configuration.Binder 1.0.0-beta6
Using Package dependency System.Collections 4.0.0-beta-23109
Using Package dependency System.Diagnostics.Debug 4.0.0-beta-23109
Using Package dependency System.Globalization 4.0.0-beta-23109
Using Package dependency System.Linq 4.0.0-beta-23109
Using Package dependency System.Resources.ResourceManager 4.0.0-beta-23109
Using Package dependency System.Runtime 4.0.0-beta-23109
Using Package dependency System.Runtime.Extensions 4.0.0-beta-23109
Using Package dependency System.Threading 4.0.0-beta-23109
Using Package dependency Microsoft.AspNet.Razor 4.0.0-beta6
Using Package dependency Microsoft.CodeAnalysis.CSharp 1.0.0
Using Package dependency Microsoft.Framework.Runtime.Roslyn 1.0.0-beta6
Using Package dependency Microsoft.AspNet.FileProviders.Physical 1.0.0-beta6
Using Package dependency Microsoft.AspNet.Hosting.Server.Abstractions 1.0.0-beta6
Using Package dependency Microsoft.Framework.Configuration.CommandLine 1.0.0-beta6
Using Package dependency Microsoft.Framework.Configuration.EnvironmentVariables 1.
Using Package dependency Microsoft.Framework.Configuration.Ini 1.0.0-beta6
Using Package dependency Microsoft.AspNet.Mvc.Core 6.0.0-beta6
Using Package dependency Microsoft.AspNet.Cors.Core 1.0.0-beta6
Using Package dependency Microsoft.AspNet.JsonPatch 1.0.0-beta6
Using Package dependency Microsoft.AspNet.Localization 1.0.0-beta6
Using Package dependency Microsoft.Framework.Localization 1.0.0-beta6
Using Package dependency Microsoft.AspNet.Mvc.Razor.Host 6.0.0-beta6
Using Package dependency Microsoft.AspNet.PageExecutionInstrumentation.Interfaces
Using Package dependency Microsoft.Framework.Runtime.Roslyn.Abstractions 1.0.0-bet
Using Package dependency Microsoft.Framework.Runtime.Roslyn.Common 1.0.0-beta6
Using Package dependency Microsoft.AspNet.Antiforgery 1.0.0-beta6
Using Package dependency Microsoft.AspNet.Diagnostics.Abstractions 1.0.0-beta6
Using Package dependency Microsoft.AspNet.Html.Abstractions 1.0.0-beta6
Using Package dependency Microsoft.AspNet.FeatureModel 1.0.0-beta6
Using Package dependency Microsoft.AspNet.Http.Abstractions 1.0.0-beta6
Using Package dependency Microsoft.AspNet.WebUtilities 1.0.0-beta6
Using Package dependency Microsoft.AspNet.DataProtection.Abstractions 1.0.0-beta6
Using Package dependency Microsoft.Framework.WebEncoders.Core 1.0.0-beta6
Using Package dependency Microsoft.Net.WebSockets 1.0.0-beta6
Using Package dependency Microsoft.CodeAnalysis.Common 1.0.0
Using Package dependency Microsoft.Framework.Runtime.Caching 1.0.0-beta6
Using Package dependency Microsoft.AspNet.Authorization 1.0.0-beta6
Using Package dependency Microsoft.AspNet.Mvc.Abstractions 6.0.0-beta6
Using Package dependency Microsoft.Framework.Notification 1.0.0-beta6
Using Package dependency Microsoft.Framework.Globalization.CultureInfoCache 1.0.0-
Using Package dependency Microsoft.Framework.Localization.Abstractions 1.0.0-beta6
Using Package dependency Microsoft.AspNet.Razor.Runtime 4.0.0-beta6
Using Package dependency Microsoft.AspNet.DataProtection 1.0.0-beta6
Using Package dependency Microsoft.AspNet.Http.Features 1.0.0-beta6
Using Package dependency Microsoft.CodeAnalysis.Analyzers 1.0.0
Using Package dependency System.Reflection.Metadata 1.0.21
Using Package dependency Microsoft.AspNet.Routing 1.0.0-beta6
Using Package dependency Microsoft.AspNet.Cryptography.Internal 1.0.0-beta6
Using Project dependency Myapp 1.0.0 for DNX,Version=v4.5.1
  Copying source code from Project dependency Myapp
    Source C:\Users\VmwareX64\Documents\Myapp\src\Myapp\project.json
    Target C:\Users\VmwareX64\Documents\Myapp\src\Myapp\bin\output\approot\s

Bundling runtime dnx-clr-win-x86.1.0.0-beta7
  C:\Users\VmwareX64\Documents\Myapp\src\Myapp\bin\output\approot\runtimes\d
sts.
Copying contents of Project dependency Myapp to C:\Users\VmwareX64\Documents\Ma

  Source C:\Users\VmwareX64\Documents\Myapp\src\Myapp\wwwroot
  Target C:\Users\VmwareX64\Documents\Myapp\src\Myapp\bin\output\wwwroot

My project.json looks like this

{
  "webroot": "wwwroot",
  "version": "1.0.0-*",

  "dependencies": {
    "EntityFramework.Core": "7.0.0-beta6",
    "EntityFramework.SqlServer": "7.0.0-beta6",
    "EntityFramework.Commands": "7.0.0-beta6",
    "Microsoft.AspNet.Mvc": "6.0.0-beta6",
    "Microsoft.AspNet.Owin": "1.0.0-beta6",
    "Microsoft.AspNet.Server.IIS": "1.0.0-beta6",
    "Microsoft.AspNet.Server.WebListener": "1.0.0-beta6",
    "Microsoft.AspNet.Server.Kestrel": "1.0.0-beta6",
    "Microsoft.AspNet.StaticFiles": "1.0.0-beta6",
    "Microsoft.Framework.Configuration.Json": "1.0.0-beta6",
    "Microsoft.Framework.Configuration.UserSecrets": "1.0.0-beta6",
    "Microsoft.Framework.Logging.Console": "1.0.0-beta6",
    "Microsoft.Net.Http": "2.2.29",
    "Mono.Zeroconf.Providers.Bonjour": "0.95",
    "sharpcompress": "0.11.1"
  },

  "commands": {
    "web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener --server.urls http://+:5000",
    "kestrel": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.Kestrel --server.urls http://localhost:5004",
    "ef": "EntityFramework.Commands"
  },

  "frameworks": {
    "dnx451": { }
  },

  "exclude": [
    "wwwroot",
    "node_modules",
    "bower_components"
  ],
  "publishExclude": [
    "node_modules",
    "bower_components",
    "**.xproj",
    "**.user",
    "**.vspscc"
  ],


}

Based on this I got 3 cmd files generated in C:\Users\VmwareX64\Documents\Myapp\src\Myapp\bin\output these files were web.cmd , ef.cmd , kestrel.cmd based on the commands in the project.json.

Now when I attempt to run web.cmd this is what I get

PS C:\Users\VmwareX64\Documents\Mandarin\src\mandarin\bin\output> .\web.cmd
System.InvalidOperationException: No service for type 'Microsoft.Framework.Runtime.IApplicationEnvironment' has been reg
istered.
   at Microsoft.Framework.DependencyInjection.ServiceProviderExtensions.GetRequiredService(IServiceProvider provider, Ty
pe serviceType)
   at Microsoft.Framework.DependencyInjection.ServiceProviderExtensions.GetRequiredService[T](IServiceProvider provider)

   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.Dnx.Runtime.Common.EntryPointExecutor.Execute(Assembly assembly, String[] args, IServiceProvider service
Provider)
   at Microsoft.Dnx.ApplicationHost.Program.ExecuteMain(DefaultHost host, String applicationName, String[] args)
   at Microsoft.Dnx.ApplicationHost.Program.Main(String[] args)
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Microsoft.Dnx.Runtime.Common.EntryPointExecutor.Execute(Assembly assembly, String[] args, IServiceProvider service
Provider)
   at Microsoft.Dnx.Host.Bootstrapper.RunAsync(List`1 args, IRuntimeEnvironment env, FrameworkName targetFramework)
   at Microsoft.Dnx.Host.RuntimeBootstrapper.ExecuteAsync(String[] args, FrameworkName targetFramework)

any suggestions on why my program is not running ?


Solution

  • Before you can expect a published app to run without any dependencies, you should test whether you can launch your application locally using dnx web.

    Doing so would have told yout he same error which is due to what Pawel said: You are using a different version of DNX on a project of a lower version.

    You should use dnvm to select a beta 6 DNX runtime, and then you could publish a beta 6 application package.

    But the better solution would be to upgrade to RC1-update1 since that’s the only supported release at the moment and includes a lot of bug fixes that existed before. Both beta 6 and beta 7 are really ancient actually and had a lot of issues which you want to avoid.