Поделиться через


Руководство. Публикация консольного приложения .NET

В этом руководстве показано, как опубликовать консольное приложение, чтобы другие пользователи могли его запустить. Публикация создает набор файлов, необходимых для запуска приложения. Чтобы развернуть файлы, скопируйте их на целевое устройство.

Предпосылки

  • Это руководство используется с консольным приложением, которое вы создаёте в разделе Create a .NET console application.

Публикация приложения

  1. Запустите Visual Studio.

  2. Откройте проект HelloWorld, созданный в Create консольного приложения .NET.

  3. Убедитесь, что Visual Studio использует конфигурацию сборки Release. При необходимости измените параметр конфигурации сборки на панели инструментов с отладки на выпуск.

    Панель инструментов Visual Studio с выбранной сборкой выпуска.

  4. Щелкните правой кнопкой мыши проект HelloWorld (а не решение HelloWorld ) и выберите " Опубликовать " в меню.

    Visual Studio Публикация контекстного меню.

  5. На вкладке "Целевая" страницы "Публикация" выберите "Папка", затем нажмите "Далее".

    Выберите целевой путь публикации в Visual Studio.

  6. На вкладке "Конкретный целевой объект " страницы "Публикация " выберите "Папка" и нажмите кнопку "Далее".

    Выберите конкретную цель публикации в Visual Studio.

  7. На вкладке "Расположение " страницы "Публикация " нажмите кнопку "Готово".

    Вкладка «Расположение» на странице публикации в Visual Studio.

  8. На странице хода создания профиля публикации нажмите кнопку "Закрыть".

  9. На вкладке "Публикация" окна "Публикация" выберите "Опубликовать".

    Окно публикации Visual Studio.

  1. Запустите Visual Studio Code.

  2. Откройте папку проекта HelloWorld, которую вы создали в разделе Создание консольного приложения .NET.

  3. Выберите вид>терминал из главного меню.

    Терминал откроется в папке HelloWorld.

  4. Выполните следующую команду:

    dotnet publish
    

    Конфигурация сборки по умолчанию —выпуска , которая подходит для развернутого сайта, работающего в рабочей среде. Результат конфигурации сборки Release имеет минимальную символьную отладочную информацию и полностью оптимизирован.

    Выходные данные команды аналогичны следующему примеру:

    Restore complete (1.1s)
      HelloWorld net10.0 succeeded (7.8s) → bin\Release\net10.0\publish\
    
    Build succeeded in 10.3s
    
  1. Откройте кодовое пространство GitHub, которое вы создали в Создании консольного приложения .NET.

  2. Добавьте следующую строку кода в начало HelloWorld.cs:

    #:property PublishAot=false
    

    Эта директива свойства отключает встроенную компиляцию заранее (AOT), и приложение будет использовать стандартный JIT-компилятор во время выполнения. Опубликованные выходные данные будут зависеть от платформы.

  3. В терминале убедитесь, что вы находитесь в папке учебников .

  4. Выполните следующую команду:

    dotnet publish HelloWorld.cs
    

    Команда создает независимый исполняемый файл.

    Выходные данные команды аналогичны следующему примеру:

    Restore complete (0.5s)
      HelloWorld net10.0 succeeded (4.0s) → artifacts\HelloWorld\
    
    Build succeeded in 5.1s
    

Проверка файлов

По умолчанию процесс публикации создает развертывание, зависящее от платформы, которое является типом развертывания, в котором опубликованное приложение выполняется на компьютере с установленной средой выполнения .NET. Пользователи могут запустить опубликованное приложение, дважды щелкнув исполняемый файл или выполнив dotnet HelloWorld.dll команду из командной строки.

В следующих шагах вы изучите файлы, созданные процессом публикации.

  1. В Solution Explorer выберите Show All Files.

    Опция Проводника решений для отображения всех файлов.

  2. В папке проекта разверните bin/Release/{net}/publish. (Где {net} — это папка целевой платформы, например net10.0.)

    Solution Explorer с отображением опубликованных файлов.

    Как показано на рисунке, опубликованные выходные данные включают следующие файлы:

    • HelloWorld.deps.json

      Это файл зависимостей среды выполнения приложения. Он определяет компоненты .NET и библиотеки (включая библиотеку динамической компоновки, содержащую приложение), необходимые для запуска приложения. Дополнительные сведения см. в файлах конфигурации среды выполнения.

    • HelloWorld.dll

      Это версия приложения для развертывания, зависящая от платформы. Чтобы выполнить эту библиотеку динамической компоновки, введите dotnet HelloWorld.dll в командной строке. Этот метод запуска приложения работает на любой платформе с установленной средой выполнения .NET.

    • HelloWorld.exe

      Это версия приложения в виде исполняемого файла, зависящего от платформы. Чтобы запустить его, введите HelloWorld.exe в командной строке. Файл зависит от операционной системы.

    • HelloWorld.pdb (необязательно для развертывания)

      Это файл символов отладки. Не требуется развертывать этот файл вместе с приложением, однако его следует сохранить на случай, если потребуется отладка опубликованной версии приложения.

    • HelloWorld.runtimeconfig.json

      Это файл конфигурации среды выполнения приложения. Он определяет версию .NET, в которую приложение было создано для запуска. В него также можно добавить параметры конфигурации. Дополнительные сведения см. в разделе .NET параметры конфигурации среды выполнения.

По умолчанию процесс публикации создает развертывание, зависящее от платформы, которое является типом развертывания, в котором опубликованное приложение выполняется на компьютере с установленной средой выполнения .NET. Чтобы запустить опубликованное приложение, можно использовать исполняемый файл или выполнить команду dotnet HelloWorld.dll из командной строки.

В следующих шагах вы изучите файлы, созданные процессом публикации.

  1. Выберите обозреватель в левой панели навигации.

  2. Разверните bin/Release/net10.0/publish.

    Обозреватель , показывающий опубликованные файлы

    Как показано на рисунке, опубликованные выходные данные включают следующие файлы:

    • HelloWorld.deps.json

      Это файл зависимостей среды выполнения приложения. Он определяет компоненты .NET и библиотеки (включая библиотеку динамической компоновки, содержащую приложение), необходимые для запуска приложения. Дополнительные сведения см. в файлах конфигурации среды выполнения.

    • HelloWorld.dll

      Это версия приложения для развертывания, зависящая от платформы. Чтобы запустить эту библиотеку динамической компоновки, введите dotnet HelloWorld.dll в командной строке. Этот метод запуска приложения работает на любой платформе с установленной средой выполнения .NET.

    • HelloWorld.exe (HelloWorld в Linux или macOS.)

      Это версия приложения в виде исполняемого файла, зависящего от платформы. Файл зависит от операционной системы.

    • HelloWorld.pdb (необязательно для развертывания)

      Это файл символов отладки. Не требуется развертывать этот файл вместе с приложением, однако его следует сохранить на случай, если потребуется отладка опубликованной версии приложения.

    • HelloWorld.runtimeconfig.json

      Это файл конфигурации среды выполнения приложения. Он определяет версию .NET, в которую приложение было создано для запуска. В него также можно добавить параметры конфигурации. Дополнительные сведения см. в разделе .NET параметры конфигурации среды выполнения.

Для однофайловых приложений процесс публикации создает каталог артефактов с скомпилированным файлом сборки. Опубликованное приложение можно запустить с помощью dotnet команды.

В следующих шагах вы изучите файлы, созданные процессом публикации.

  1. Выберите обозреватель в левой панели навигации.

  2. Откройте артефакты/HelloWorld.

    Обозреватель , показывающий опубликованные файлы

    Как показано на рисунке, опубликованные выходные данные включают следующие файлы:

    • Helloworld

      Это версия приложения в виде исполняемого файла, зависящего от платформы. Файл зависит от операционной системы. Функция Codespaces работает на Linux, поэтому это исполняемый файл Linux.

    • HelloWorld.deps.json

      Это файл зависимостей среды выполнения приложения. Он определяет компоненты .NET и библиотеки (включая библиотеку динамической компоновки, содержащую приложение), необходимые для запуска приложения. Дополнительные сведения см. в файлах конфигурации среды выполнения.

    • HelloWorld.dll

      Это версия приложения для развертывания, зависящая от платформы. Чтобы запустить эту библиотеку динамической компоновки, введите dotnet HelloWorld.dll в командной строке. Этот метод запуска приложения работает на любой платформе с установленной средой выполнения .NET.

    • HelloWorld.pdb (необязательно для развертывания)

      Это файл символов отладки. Не требуется развертывать этот файл вместе с приложением, однако его следует сохранить на случай, если потребуется отладка опубликованной версии приложения.

    • HelloWorld.runtimeconfig.json

      Это файл конфигурации среды выполнения приложения. Он определяет версию .NET, в которую приложение было создано для запуска. В него также можно добавить параметры конфигурации. Дополнительные сведения см. в разделе .NET параметры конфигурации среды выполнения.

    Щелкните правой кнопкой мыши и выберите "Скачать..." , чтобы скачать файлы из codespaces на локальный компьютер.

Запуск опубликованного приложения

  1. В Solution Explorer щелкните правой кнопкой мыши папку publish и выберите Copy Full Path.

  2. Откройте командную строку и перейдите в папку публикации . Для этого введите cd и вставьте полный путь. Рассмотрим пример.

    cd C:\Projects\HelloWorld\bin\Release\net10.0\publish\
    
  3. Запустите приложение с помощью исполняемого файла:

    1. Введите HelloWorld.exe и нажмите ВВОД.

    2. Введите имя в ответ на запрос и нажмите клавишу, чтобы выйти.

  4. Запустите приложение с помощью dotnet команды:

    1. Введите dotnet HelloWorld.dll и нажмите ВВОД.

    2. Введите имя в ответ на запрос и нажмите клавишу, чтобы выйти.

  1. В Проводнике щелкните правой кнопкой мыши папку публикации (на macOS нажмитеCTRLи кликните), и выберите Открыть в интегрированном терминале .

    контекстное меню с открытым окном в терминале

  2. В Windows или Linux запустите приложение с помощью исполняемого файла.

    1. В Windows введите .\HelloWorld.exe и нажмите клавишу Enter.

    2. В Linux введите ./HelloWorld и нажмите клавишу ВВОД.

    3. Введите имя в ответ на запрос и нажмите клавишу ВВОД, чтобы выйти.

  3. На любой платформе запустите приложение с помощью команды dotnet:

    1. Введите dotnet HelloWorld.dll и нажмите ВВОД.

    2. Введите имя в ответ на запрос и нажмите клавишу ВВОД, чтобы выйти.

  1. В обозревателе щелкните правой кнопкой мыши папку артефактов/HelloWorld и выберите "Открыть" в интегрированном терминале.

  2. Запустите приложение с помощью исполняемого файла. Введите ./HelloWorld и нажмите клавишу ВВОД.

  3. Введите имя в ответ на запрос и нажмите клавишу ВВОД, чтобы выйти.

Дополнительные ресурсы

Очистка ресурсов

GitHub автоматически удаляет пространство кода через 30 дней бездействия. Если вы планируете ознакомиться с дополнительными руководствами в этой серии, вы можете оставить ваш Codespace активным. Если вы готовы посетить сайт .NET, чтобы скачать пакет SDK .NET, можно удалить пространство codespace. Чтобы удалить ваш Codespace, откройте окно браузера и перейдите к вашим Codespace. В окне вы видите список ваших codespaces. Выберите три точки (...) в записи пространства кода учебного руководства. Затем нажмите кнопку "Удалить".

Дальнейшие шаги

В этом руководстве вы опубликовали консольное приложение. В следующем руководстве вы создадите библиотеку классов.