Я потратил добрый час на то, чтобы поиграть с ним, и у меня появилась "страница приветствия".
Как я и подозревал, вы пытались использовать dotnet-cli со своим проектом в стиле dnx и использовали неправильный канал nuget (официальный, а не ночные каналы myget).
Для этого демонстрационного проекта просто создайте новую папку и запустите dotnet new
. Это создает три файла: NuGet.Config
, project.json
и Program.cs
. Вы можете удалить более поздний и просто создать Startup.cs
снизу.
Startup.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.DependencyInjection;
namespace AspNetCoreCliDemo
{
public class Startup
{
// This method gets called by the runtime. Use this method to add services to the container.
// For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=398940
public void ConfigureServices(IServiceCollection services)
{
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app)
{
app.UseIISPlatformHandler();
app.UseWelcomePage();
}
// This doesn't work right now, as it can't resolve WebApplication type
//public static void Main(string[] args) => WebApplication.Run<Startup>(args);
// Entry point for the application.
public static void Main(string[] args)
{
var host = new WebHostBuilder()
.UseDefaultConfiguration(args)
.UseServer("Microsoft.AspNetCore.Server.Kestrel")
.UseIISPlatformHandlerUrl()
.UseStartup<Startup>()
.Build();
host.Run();
}
}
}
project.json:
{
"version": "1.0.0-*",
"compilationOptions": {
"emitEntryPoint": true
},
"dependencies": {
"NETStandard.Library": "1.0.0-rc2-*",
"Microsoft.AspNetCore.Diagnostics": "1.0.0-rc2-*",
"Microsoft.AspNetCore.IISPlatformHandler": "1.0.0-rc2-*",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.0-rc2-*"
},
"frameworks": {
"dnxcore50": { }
},
"exclude": [
"wwwroot",
"node_modules"
],
"publishExclude": [
"**.user",
"**.vspscc"
]
}
Примечание. На данный момент поддерживается только dnxcore
псевдоним.
И последнее, но не менее важное: NuGet.Config
, который работал в моем случае:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<!--To inherit the global NuGet package sources remove the <clear/> line below -->
<clear />
<add key="cli-deps" value="https://dotnet.myget.org/F/cli-deps/api/v3/index.json" />
<add key="dotnet-core" value="https://dotnet.myget.org/F/dotnet-core/api/v3/index.json" />
<add key="api.nuget.org" value="https://api.nuget.org/v3/index.json" />
</packageSources>
</configuration>
Я не добился успеха с двумя каналами по умолчанию (api.nuget.org и dotnet-core), так как не смог разрешить несколько зависимостей. После добавления канала "cli-deps" все пакеты были разрешены и dotnet run
работали. Он будет прослушивать порт "http://localhost:5000" и обслуживать страницу приветствия.
Вы можете получить сообщение об ошибке о наличии нескольких точек входа, потому что у вас есть метод Main
как в Program.cs
, так и в Startup.cs
. Просто удалите Program.cs
.
Это должно служить отправной точкой.
dotnet-cli
на данный момент еще не поддерживает команды (ранее определенные в файле project.json
).
person
Tseng
schedule
20.02.2016
dotnet new
? Похоже, что ваши dependencries вproject.json
все еще относятся к rc1. Dotnet-cli работает только для ночных сборок rc2 (официальной сборки rc2 пока нет) - person Tseng   schedule 20.02.2016project.json
файлы и сравнить зависимости, которые различаются. dotnet-cli все еще находится на ранней стадии, а ASP.NET Core 1.0 находится в процессе полного перехода на него (отсюда и задержка с выпуском ASP.NET Core 1.0 RC2, который должен был выйти в январе). В официальном фиде nuget 3 есть только официальные релизы (RC1). Возможно, вам потребуются более новые версии зависимостей. На dotnet.myget.org/gallery/cli-deps есть канал myget, содержит более свежую версию Microsoft.CodeAnalysis.CSharp и новые пакеты Microsoft.AspNetCore.Mvc. * - person Tseng   schedule 20.02.2016