2016-11-12 8 views
0

Я следующие this guide и в шаге 4, я попросил, чтобы добавить три строки в project.json файл (который я сделал, а затем побежал DotNet восстановить получение большого количества обновленных пакетов).Не удается найти метод app.UseStaticFiles()

Когда я ввожу три строки в Настройте метод, я получаю красные линии на всех из них. Эти методы не распознаются, не IntelliSense не предусмотрено т.д.

Я также заметил, что в примере, в руководстве, метод подписи принимает только один параметр IApplicationBuilder, в то время как тот, который я получил генерируется (с помощью йо aspnet команда) выглядит следующим образом.

Configure(IApplicationBuilder, IHostingEnvironment, ILoggerFactory); 

Я не уверен, как его решить. Я предполагаю, что есть новая версия чего-то в этом процессе (Yo, Generators, Core и т. Д.), Но я не совсем уверен.

Я также нашел this blog, где подпись метода похожа на ту, которую я получаю. Однако автор этого предложения предлагает тот же синтаксис, который не работает для меня. Я предполагаю, что это вопрос ссылок на неправильные библиотеки. Как подойти к проблеме?

+0

Сначала учебник использует устаревшую версию, по крайней мере, скриншоты - это rc1, от которых вы больше не должны зависеть.Все, что старше rc2, можно безопасно уничтожить, потому что изменения от rc1 до rc2 были большими (с изменением с dnx на dotnet cli, пространство пакетов и имен тоже изменилось и довольно много бит API) – Tseng

+0

@Tseng. .. Я потратил впустую большую часть субботнего взмаха, который у меня был в столе, чтобы понять все это, потому что это не имело никакого смысла ... Должно быть, спросил раньше, хе-хе. Благодаря! Отправьте его как ответ тоже. Он должен принимать. –

+0

@Tseng Все ли разговоры о пакете * Yo * также устарели или все еще используются? Я не могу сказать ... –

ответ

1

Судя по скриншотам в связанном учебнике, о ASP.NET Core RC1 (тогда он назывался ASP.NET 5 r1-final). Вы можете легко распознать это в именах пакетов и имен. Microsoft.AspNet.* используется до rc1.

Начиная с RC2, пакеты были переименованы в Microsoft.AspNetCore.*, чтобы сделать его более четким и несовместимым с устаревшим ASP.NET.

The UseIISPlatformHandler() не там больше, теперь UseIISIntegration() в методе Main(...):

public class Program 
{ 
    public static void Main(string[] args) 
    { 
     var host = new WebHostBuilder() 
      .UseKestrel() 
      .UseContentRoot(Directory.GetCurrentDirectory()) 
      .UseIISIntegration() 
      .UseStartup<Startup>() 
      .Build(); 

     host.Run(); 
    } 
} 

И пакеты пакет Microsoft.AspNetCore.Server.IISIntegration": "1.0.0" и "Microsoft.AspNetCore.Server.Kestrel": "1.0.1". Для статических файлов это: "Microsoft.AspNetCore.StaticFiles": "1.0.0".

Для перегрузки Configure: Configure(IApplicationBuilder); по умолчанию один, но вы можете добавить любой другой тип, который зарегистрирован в системе впрыска зависимости (в ConfigureServices методы), так как это система Конвенции (startup.cs).

1

Для ядра Asp.Net MVC вам необходимо установить NuGet Пакет

установки-пакет "Microsoft.AspNetCore.StaticFiles"

2

Это руководство является устаревшим. Обновленное ядро ​​.Net больше не использует project.json, что является неудачным. Вместо этого он теперь является частью файла csproj. И для добавления библиотеки статических файлов вам необходимо добавить ее в проект с помощью nuget-менеджера пакетов. И когда вы перестроили, вы увидите запись в файле csproj для этой библиотеки. Я думаю, что project.json была отличной идеей, которая была встроена в базовую методологию выбора, поскольку это позволит intellisense использовать, чтобы помочь вам выбрать из доступных библиотек. И так как csproj-файл не может быть отредактирован непосредственно в решении, вы теряете эту функцию.