Як автоматично перезавантажувати проект .NET Core у Visual Studio 2019?


11

Я намагаюся автоматично перезавантажувати ASP.NET Core Project так само, як Angular з Node або NPM.

Це означає, що я змінюю код .NET Core Project і зберігаю. Цей час автоматично направляє ефект у браузері та автоматично перезавантажує веб-сторінку у браузері.


Я не точно впевнений, що ви маєте на увазі під перезавантаженням, але взагалі ви не можете змінити код під час виконання.
Яссер Яруф

@YasserJarouf, я не говорю про візуальну студію 2019.
Акаш Лімбані

Проекти ASP.NET Основні Кутове вже перезавантажувати код на стороні клієнта - вони є кутові, а не тільки same asкутові. ASP.NET Core використовується для надання API та не SPA-сторінок.
Панайотис Канавос

Інші способи, як, наприклад, комбінувати встановити пакет npm з проектом ASP.NET Core?
Акаш Лімбані

Відповіді:


5

Я думаю, що дотнет-годинник повинен працювати. Дивіться документацію за посиланням, оскільки існують різні варіанти.

  1. Додайте Microsoft.DotNet.Watcher.Tools до розділу інструментів файлу project.json
  2. Запустіть відновлення точки
  3. Виконати за допомогою запуску dotnet watch

Але використовуючи це, я не в змозі автоматично перезавантажуватись як Angular. Якщо я натиснув ctrl + s , то в браузері не працювала жодна дія. Дякуємо за відповідь.
Акаш Лімбані

ви повинні запустити свою програму за допомогою командного рядка та додати деталі перегляду у проект. json
PrinceT

Або ви можете просто використовувати мій профіль запуску, який я надав у своїй відповіді ..
GrowSing

Так, я це зробив. Я перевіряю, використовуючи цю команду запуску dotnet watch.
Акаш Лімбані

Ви можете бачити зміни в консолі .. коли ви намагаєтеся запустити .. чи можете ви щось побачити?
PrinceT

3

Відповідно до цієї вимоги, нам потрібно запустити .net core додаток так само, як Angular додаток, автоматично завантажуючи сторінки та вміст без вбудованого та ручного оновлення.

Я провів кілька досліджень і пережив свої 7+ років, як розробник .net, працюючи старшим ресурсом компанії-розробника ASP.NET, що автоматична перезавантаження неможлива в основному проекті ASP.NET. Однак ми отримали успіх: у нашому рішенні ми використовуємо дотнет-годинник, який відстежує вихідні файли, і якщо файл змінюється, вимикає запущене додаток, відновлює і публікує проект, а потім перезавантажує програму, тоді нам просто потрібно оновити сторінку вручну в браузері, щоб отримати зміни, внесені в додаток, нам не потрібно створювати або запускати проект.

Крок для використання для перегляду asp.net:

1) Create.Net core application.

2) Відкрийте вікно команди у папці веб-проекту

3) Тип dotnet watch run

4) Відкрийте веб-переглядач та перейдіть до API чи сторінки

5) Внесіть зміни у вихідний код

6) Збережіть файл

7) Поверніться до браузера та оновіть вручну

8) Ви повинні побачити зміну відображеною


Як це зробити у Visual Studio 2019?
Акаш Лімбані

2

Можна використовувати dotnet watch. Віз. Документи

Я створив спеціальний профіль обіду, щоб зробити його легше запускати в VS.

"Watch": {
  "executablePath": "dotnet.exe",
  "workingDirectory": "$(ProjectDir)",
  "commandLineArgs": "watch run",
  "launchBrowser": false,
  "launchUrl": "http://localhost:5000/",
  "environmentVariables": {
    "ASPNETCORE_ENVIRONMENT": "Development"
  }
}

Використовуючи це, не завантажується автоматично у веб-переглядачі, як Angular.
Акаш Лімбані

Чи можете ви запустити проект Angular?
Акаш Лімбані


2

запустіть цю команду в консолі проекту

dotnet watch run

те саме працює для візуального коду студії


1

Вам слід подумати потрійно, перш ніж перейти до цього варіанту. (1) Це витрачає ресурси. Оскільки це вимагає автоматичного складання, як попередньої роботи, модифікованого проекту, а іноді і цілого рішення. (Уявіть, що середнє та величезне рішення Asp.net складається з багатьох проектів, будуйте для кожної модифікації виконану !! скільки часу залишилось на програмування ??? !!) (2), як відомо, перезавантаження сторінки займає багато час для першого запуску після успішної збірки !! ... Отже, час, який ви хочете отримати від цієї опції, ви будете витрачені багаторазово, особливо мови програмування на основі CLR (наприклад, .NET Core). І нарешті, (3), як очікується, ваш проект потребує розробки тестових зразків, які можна вводити автоматично для того, щоб покращити процес автоматизації, уявіть, як це важко!

Натомість спробуйте перевірити своє рішення, і тоді, як очікується, будь-яка наступна модифікація буде поверхневою та малою.

Якщо ви не згодні з моєю пропозицією, пропоную розробити розширення для візуальної студії, яке краще перезавантажить цільову веб-сторінку, on-buildа не on-save-changesподію. Далі, Ctrl + bзробимо роботу!

З чого почати?

Я розробив VSIX, який спостерігає за тим, щоб папки автоматично завантажували певні згенеровані файли за межами інтерфейсу VS. перевірте вихідний код, ви матимете уявлення про управління файлами проекту. він обертається в API EnvDTE, будь ласка, подивіться у цьому фрагменті коду.

Також перевірте вихідний проект звідси

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.