2016-08-13 133 views
12

我想我的部署dotnet的核心应用程序的Heroku,但保持对这种错误运转起来:部署的dotnet核心的Heroku

Restore failed 
unknown keyword platform 
!  Push rejected, failed to compile Web app app. 
!  Push failed 

当我使用dotnet run从CLI(我在Mac )一切运行良好。我已经包含下面我在Project.json的情况下,可以帮助:

{ 
    "dependencies": { 
    "Microsoft.NETCore.App": { 
    "version": "1.0.0", 
    "type": "platform" 
    }, 
    "Microsoft.AspNetCore.Mvc": "1.0.0", 
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0", 
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0", 
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0", 
    "Microsoft.Extensions.Configuration.FileExtensions": "1.0.0", 
    "Microsoft.Extensions.Configuration.Json": "1.0.0", 
    "Microsoft.Extensions.Configuration.CommandLine": "1.0.0", 
    "Microsoft.Extensions.Logging": "1.0.0", 
    "Microsoft.Extensions.Logging.Console": "1.0.0", 
    "Microsoft.Extensions.Logging.Debug": "1.0.0", 
    "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0", 
    "Microsoft.EntityFrameworkCore.Sqlite": "1.0.0", 
    "Microsoft.EntityFrameworkCore.Design": { 
    "version": "1.0.0-preview2-final", 
    "type": "build" 
    } 
}, 

"tools": { 
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-  final", 
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final" 
}, 

"frameworks": { 
    "netcoreapp1.0": { 
    "imports": [ 
     "dotnet5.6", 
     "portable-net45+win8" 
    ] 
    } 
}, 

"buildOptions": { 
    "emitEntryPoint": true, 
    "preserveCompilationContext": true 
}, 

"runtimeOptions": { 
    "configProperties": { 
    "System.GC.Server": true 
    } 
}, 

"publishOptions": { 
    "include": [ 
    "wwwroot", 
    "Views", 
    "Areas/**/Views", 
    "appsettings.json", 
    "web.config" 
    ] 
}, 

"tooling": { 
    "defaultNamespace": "Tokens_monolith" 
} 
} 
+1

您是否在Heroku上安装了dotnet-cli和.NET Core SDK/Runtime? – Tseng

+0

我运行了'heroku buildpack:设置https:// github.com/jincod/dotnet-buildpack'来设置我的buildpack,然后直接从github部署我的代码。它在错误出现之前开始运行'DNVM'。 – pgruber

+2

这是一个重要的信息。当前的ASP.NET Core不再使用DNX。自RC2以来,(ASP).NET Core仅在dotnet-cli上运行。 DNX已弃用,不会进一步维护或开发。 DNVM是/是一个将安装DNX运行时的DNX工具。可在此处找到.NET Core SDK/Runtime https://www.microsoft.com/net/core – Tseng

回答

10

我终于得到这个成功部署到Heroku的,这一切都正常运行。 Tseng对此很有帮助,所以谢谢。我使用的buildpack是针对旧版本的.NET Core。 Heroku有一个针对ASPNET5的实验性buildpack:https://github.com/heroku/dotnet-buildpack

截至此答案为止,此buildpack使用Mono进行运行时执行。有一个使用我使用的.NET CLI的拉取请求,它的效果很好。它可以在这里找到:https://github.com/noliar/dotnet-buildpack。希望他们很快接受这个拉取请求。这是我使用的buildpack。

希望这可以帮助别人。