System.InvalidOperationException:当前运行时目标框架与' HelloWorld'不兼容。

时间:2016-01-10 17:24:16

标签: c# dnx .net-4.6 coreclr dnvm

我正在尝试使用.net 5和visual studio代码运行第一个helloword应用程序。

如果我输入dnvm列表,我就有这个:

Active Version           Runtime Architecture OperatingSystem Alias
------ -------           ------- ------------ --------------- -----
       1.0.0-beta4       clr     x64          win
       1.0.0-beta4       clr     x86          win
       1.0.0-beta4       coreclr x64          win
       1.0.0-beta4       coreclr x86          win
       1.0.0-beta4-11566 clr     x64          win
       1.0.0-beta4-11566 clr     x86          win
       1.0.0-beta4-11566 coreclr x64          win
       1.0.0-beta5       clr     x86          win
       1.0.0-beta5       coreclr x86          win
  *    1.0.0-rc1-update1 clr     x64          win             default
       1.0.0-rc1-update1 clr     x86          win
       1.0.0-rc1-update1 coreclr x64          win
       1.0.0-rc1-update1 coreclr x86          win

我的project.json很简单:

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

但是当我在文件夹上使用DNX RUN运行应用程序时出现此错误

System.InvalidOperationException: The current runtime target framework is not compatible with 'HelloWorld'.
Current runtime target framework: 'DNXCore,Version=v5.0 (dnxcore50)'
 Version:      1.0.0-rc1-16231
 Type:         CoreClr
 Architecture: x64
 OS Name:      Windows
 OS Version:   10.0
 Runtime Id:   win10-x64

Please make sure the runtime matches a framework specified in project.json
   at Microsoft.Dnx.ApplicationHost.DefaultHost.GetEntryPoint(String applicationName)
   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 serviceProvider)
   at Microsoft.Dnx.Host.Bootstrapper.RunAsync(List`1 args, IRuntimeEnvironment env, String appBase, FrameworkName targetFramework)
   at Microsoft.Dnx.Host.RuntimeBootstrapper.ExecuteAsync(String[] args, BootstrapperContext bootstrapperContext)
   at Microsoft.Dnx.Host.RuntimeBootstrapper.Execute(String[] args, BootstrapperContext bootstrapperContext)

d:\P\HelloWorld>

1 个答案:

答案 0 :(得分:0)

当我使用dnx运行程序在新的控制台命令上运行时,它会起作用。 但是当我在vs 2015命令提示符下运行带有dnx run的程序时,我使用了dnvm use命令,它运行得很好。

在我看来,使用-p persistent参数的dnvm工作不正常,因为在第二个命令提示符下,即使默认和活动框架只是clr,它也会尝试使用coreclr。

并回答Yeoman,project.json完全没问题,我没有修改任何东西来运行