Можно ли запустить приложение net core в Windows
Обновлено: 24.11.2024
Предпосылки
Шаблон рабочей службы
Используйте шаблон рабочей службы ( worker ) с командой dotnet new из командной оболочки. В следующем примере создается приложение Worker Service с именем ContosoWorker . Папка для приложения ContosoWorker создается автоматически при выполнении команды.
Конфигурация приложения
В CreateHostBuilder Program.cs:
К этому разделу прилагаются следующие примеры приложений:
- Пример фоновой рабочей службы. Образец не-веб-приложения, основанный на шаблоне рабочей службы, который использует размещенные службы для фоновых задач.
- Пример службы веб-приложений: образец веб-приложения Razor Pages, который работает как служба Windows с размещенными службами для фоновых задач.
Тип развертывания
Для службы на основе веб-приложения, использующей платформы Razor Pages или MVC, укажите веб-SDK в файле проекта:
Если служба выполняет только фоновые задачи (например, размещенные службы), укажите Worker SDK в файле проекта:
Развертывание в зависимости от платформы (FDD)
Автономное развертывание (SCD)
Автономное развертывание (SCD) не зависит от наличия общей платформы в хост-системе. Среда выполнения и зависимости приложения развертываются вместе с приложением.
Идентификатор времени выполнения Windows (RID) включен в
который содержит целевую структуру:
Чтобы опубликовать несколько RID:
- Укажите RID в виде списка, разделенного точкой с запятой.
- Используйте название свойства (во множественном числе).
Учетная запись пользователя службы
Чтобы создать учетную запись пользователя для службы, используйте командлет New-LocalUser из административной командной оболочки PowerShell 6.
В Windows 10 October 2018 Update (версия 1809/сборка 10.0.17763) или более поздней версии:
В ОС Windows до обновления Windows 10 за октябрь 2018 г. (версия 1809/сборка 10.0.17763):
Укажите надежный пароль при появлении запроса.
Если для командлета New-LocalUser не указан параметр -AccountExpires с датой истечения срока действия, срок действия учетной записи не истекает.
Альтернативный подход к управлению пользователями при использовании Active Directory — использование управляемых учетных записей служб. Дополнительные сведения см. в разделе Обзор групповых управляемых сервисных аккаунтов.
Вход в систему с правами службы
Чтобы установить права Вход в качестве службы для учетной записи пользователя службы:
- Откройте редактор локальной политики безопасности, запустив secpol.msc.
- Разверните узел "Локальные политики" и выберите "Назначение прав пользователя".
- Откройте политику "Вход в качестве службы".
- Выберите "Добавить пользователя или группу".
- Укажите имя объекта (учетную запись пользователя), используя один из следующих подходов:
- Введите учетную запись пользователя ( ) в поле имени объекта и нажмите кнопку ОК, чтобы добавить пользователя в политику.
- Выберите «Дополнительно». Выберите «Найти сейчас». Выберите учетную запись пользователя из списка. Выберите ОК. Нажмите кнопку "ОК" еще раз, чтобы добавить пользователя в политику.
Создание службы Windows и управление ею
Создать службу
Используйте команды PowerShell для регистрации службы. В административной командной оболочке PowerShell 6 выполните следующие команды:
- : путь к папке приложения на хосте (например, d:\myservice ). Не включайте исполняемый файл приложения в путь. Косая черта в конце не требуется.
- : учетная запись пользователя службы (например, Contoso\ServiceUser ).
- : имя службы (например, MyService ).
- : путь к исполняемому файлу приложения (например, d:\myservice\myservice.exe ). Включите имя исполняемого файла с расширением.
- : описание службы (например, Мой пример службы).
- : отображаемое имя сервиса (например, My Service ).
Запустить службу
Запустите службу с помощью следующей команды PowerShell 6:
Команде требуется несколько секунд для запуска службы.
Определение статуса службы
Чтобы проверить состояние службы, используйте следующую команду PowerShell 6:
Статус отображается в виде одного из следующих значений:
Остановить службу
Остановите службу с помощью следующей команды PowerShell 6:
Удалить службу
После небольшой задержки для остановки службы удалите службу с помощью следующей команды PowerShell 6:
Сценарии прокси-сервера и балансировщика нагрузки
Настроить конечные точки
Дополнительные подходы к настройке URL и портов см. в соответствующей статье о сервере:
Текущий каталог и корень содержимого
Текущий рабочий каталог, возвращаемый вызовом GetCurrentDirectory для службы Windows, — это папка C:\WINDOWS\system32. Папка system32 не является подходящим местом для хранения файлов службы (например, файлов настроек). Используйте один из следующих подходов для обслуживания ресурсов и файлов настроек службы и доступа к ним.
Использовать ContentRootPath или ContentRootFileProvider
Файлы настроек приложения по умолчанию, appsettings.json и appsettings..json , загружаются из корневого каталога содержимого приложения путем вызова CreateDefaultBuilder во время создания хоста.
Для других файлов настроек, загружаемых кодом разработчика в ConfigureAppConfiguration, нет необходимости вызывать SetBasePath. В следующем примере файл custom_settings.json находится в корневом каталоге содержимого приложения и загружается без явного указания базового пути:
Не пытайтесь использовать GetCurrentDirectory для получения пути к ресурсу, поскольку приложение службы Windows возвращает папку C:\WINDOWS\system32 в качестве текущего каталога.
Хранить файлы службы в подходящем месте на диске
Укажите абсолютный путь с помощью SetBasePath при использовании IConfigurationBuilder к папке, содержащей файлы.
Устранение неполадок
Распространенные ошибки
- Используется старая или предварительная версия PowerShell.
- Зарегистрированная служба не использует опубликованные выходные данные приложения из команды публикации dotnet. Выходные данные команды сборки dotnet не поддерживаются для развертывания приложений. Опубликованные ресурсы находятся в одной из следующих папок в зависимости от типа развертывания:
- bin/Release//publish (FDD)
- bin/Release///опубликовать (SCD)
Журналы событий системы и приложений
Доступ к журналам событий системы и приложений:
- Откройте меню "Пуск", найдите Просмотр событий и выберите приложение "Просмотр событий".
- В средстве просмотра событий откройте узел "Журналы Windows".
- Выберите Система, чтобы открыть журнал системных событий. Выберите Приложение, чтобы открыть журнал событий приложений.
- Поиск ошибок, связанных с неисправным приложением.
Запустите приложение из командной строки
Многие ошибки запуска не содержат полезной информации в журналах событий. Вы можете найти причину некоторых ошибок, запустив приложение из командной строки в системе хостинга. Чтобы регистрировать дополнительные сведения из приложения, уменьшите уровень ведения журнала или запустите приложение в среде разработки.
Очистить кеш пакетов
Удалите папки bin и obj.
Очистите кэши пакетов, выполнив dotnet nuget locals all --clear из командной оболочки.
Очистку кэшей пакетов также можно выполнить с помощью средства nuget.exe и выполнения команды nuget locals all -clear . nuget.exe не устанавливается вместе с операционной системой Windows для настольных ПК и должен быть получен отдельно с веб-сайта NuGet.
Восстановите и перестройте проект.
Удалите все файлы в папке развертывания на сервере перед повторным развертыванием приложения.
Приложение работает медленно или не отвечает
Аварийный дамп — это моментальный снимок системной памяти, который может помочь определить причину сбоя приложения, сбоя при запуске или медленной работы приложения.
Приложение аварийно завершает работу или возникает исключение
Получить и проанализировать дамп из отчетов об ошибках Windows (WER):
Создайте папку для хранения файлов аварийного дампа в c:\dumps .
Запустите сценарий PowerShell EnableDumps с именем исполняемого файла приложения:
Запустите приложение в условиях, вызывающих сбой.
После сбоя запустите PowerShell-скрипт DisableDumps:
После сбоя приложения и завершения сбора дампа приложение может завершить работу в обычном режиме. Сценарий PowerShell настраивает WER для сбора до пяти дампов для каждого приложения.
Краш-дампы могут занимать много места на диске (до нескольких гигабайт каждый).
Приложение не отвечает, не работает при запуске или работает нормально
Когда приложение зависает (перестает отвечать, но не аварийно завершает работу), дает сбой при запуске или работает нормально, см. раздел Файлы дампа пользовательского режима: выбор наилучшего инструмента для выбора свалка.
Анализ дампа
Дамп можно анализировать несколькими способами. Дополнительные сведения см. в разделе Анализ файла дампа пользовательского режима.
Дополнительные ресурсы
Предпосылки
Шаблон рабочей службы
Используйте шаблон рабочей службы ( worker ) с командой dotnet new из командной оболочки. В следующем примере создается приложение Worker Service с именем ContosoWorker . Папка для приложения ContosoWorker создается автоматически при выполнении команды.
Конфигурация приложения
В CreateHostBuilder Program.cs:
К этому разделу прилагаются следующие примеры приложений:
- Пример фоновой рабочей службы. Образец не-веб-приложения, основанный на шаблоне рабочей службы, который использует размещенные службы для фоновых задач.
- Пример службы веб-приложений: образец веб-приложения Razor Pages, который работает как служба Windows с размещенными службами для фоновых задач.
Тип развертывания
Для службы на основе веб-приложения, использующей платформы Razor Pages или MVC, укажите веб-SDK в файле проекта:
Если служба выполняет только фоновые задачи (например, размещенные службы), укажите Worker SDK в файле проекта:
Развертывание в зависимости от платформы (FDD)
Автономное развертывание (SCD)
Автономное развертывание (SCD) не зависит от наличия общей платформы в хост-системе. Среда выполнения и зависимости приложения развертываются вместе с приложением.
Идентификатор времени выполнения Windows (RID) включен в
который содержит целевую структуру:
Чтобы опубликовать несколько RID:
- Укажите RID в виде списка, разделенного точкой с запятой.
- Используйте название свойства (во множественном числе).
Учетная запись пользователя службы
Чтобы создать учетную запись пользователя для службы, используйте командлет New-LocalUser из административной командной оболочки PowerShell 6.
В Windows 10 October 2018 Update (версия 1809/сборка 10.0.17763) или более поздней версии:
В ОС Windows до обновления Windows 10 за октябрь 2018 г. (версия 1809/сборка 10.0.17763):
Укажите надежный пароль при появлении запроса.
Если для командлета New-LocalUser не указан параметр -AccountExpires с датой истечения срока действия, срок действия учетной записи не истекает.
Альтернативный подход к управлению пользователями при использовании Active Directory — использование управляемых учетных записей служб. Дополнительные сведения см. в разделе Обзор групповых управляемых сервисных аккаунтов.
Вход в систему с правами службы
Чтобы установить права Вход в качестве службы для учетной записи пользователя службы:
- Откройте редактор локальной политики безопасности, запустив secpol.msc.
- Разверните узел "Локальные политики" и выберите "Назначение прав пользователя".
- Откройте политику "Вход в качестве службы".
- Выберите "Добавить пользователя или группу".
- Укажите имя объекта (учетную запись пользователя), используя один из следующих подходов:
- Введите учетную запись пользователя ( ) в поле имени объекта и нажмите кнопку ОК, чтобы добавить пользователя в политику.
- Выберите «Дополнительно». Выберите «Найти сейчас». Выберите учетную запись пользователя из списка. Выберите ОК. Нажмите кнопку "ОК" еще раз, чтобы добавить пользователя в политику.
Создание службы Windows и управление ею
Создать службу
Используйте команды PowerShell для регистрации службы. В административной командной оболочке PowerShell 6 выполните следующие команды:
- : путь к папке приложения на хосте (например, d:\myservice ). Не включайте исполняемый файл приложения в путь. Косая черта в конце не требуется.
- : учетная запись пользователя службы (например, Contoso\ServiceUser ).
- : имя службы (например, MyService ).
- : путь к исполняемому файлу приложения (например, d:\myservice\myservice.exe ). Включите имя исполняемого файла с расширением.
- : описание службы (например, Мой пример службы).
- : отображаемое имя сервиса (например, My Service ).
Запустить службу
Запустите службу с помощью следующей команды PowerShell 6:
Команде требуется несколько секунд для запуска службы.
Определение статуса службы
Чтобы проверить состояние службы, используйте следующую команду PowerShell 6:
Статус отображается в виде одного из следующих значений:
Остановить службу
Остановите службу с помощью следующей команды PowerShell 6:
Удалить службу
После небольшой задержки для остановки службы удалите службу с помощью следующей команды PowerShell 6:
Сценарии прокси-сервера и балансировщика нагрузки
Настроить конечные точки
Дополнительные подходы к настройке URL и портов см. в соответствующей статье о сервере:
Текущий каталог и корень содержимого
Текущий рабочий каталог, возвращаемый вызовом GetCurrentDirectory для службы Windows, — это папка C:\WINDOWS\system32. Папка system32 не является подходящим местом для хранения файлов службы (например, файлов настроек). Используйте один из следующих подходов для обслуживания ресурсов и файлов настроек службы и доступа к ним.
Использовать ContentRootPath или ContentRootFileProvider
Файлы настроек приложения по умолчанию, appsettings.json и appsettings..json , загружаются из корневого каталога содержимого приложения путем вызова CreateDefaultBuilder во время создания хоста.
Для других файлов настроек, загружаемых кодом разработчика в ConfigureAppConfiguration, нет необходимости вызывать SetBasePath. В следующем примере файл custom_settings.json находится в корневом каталоге содержимого приложения и загружается без явного указания базового пути:
Не пытайтесь использовать GetCurrentDirectory для получения пути к ресурсу, поскольку приложение службы Windows возвращает папку C:\WINDOWS\system32 в качестве текущего каталога.
Хранить файлы службы в подходящем месте на диске
Укажите абсолютный путь с помощью SetBasePath при использовании IConfigurationBuilder к папке, содержащей файлы.
Устранение неполадок
Распространенные ошибки
- Используется старая или предварительная версия PowerShell.
- Зарегистрированная служба не использует опубликованные выходные данные приложения из команды публикации dotnet. Выходные данные команды сборки dotnet не поддерживаются для развертывания приложений. Опубликованные ресурсы находятся в одной из следующих папок в зависимости от типа развертывания:
- bin/Release//publish (FDD)
- bin/Release///опубликовать (SCD)
Журналы событий системы и приложений
Доступ к журналам событий системы и приложений:
- Откройте меню "Пуск", найдите Просмотр событий и выберите приложение "Просмотр событий".
- В средстве просмотра событий откройте узел "Журналы Windows".
- Выберите Система, чтобы открыть журнал системных событий. Выберите Приложение, чтобы открыть журнал событий приложений.
- Поиск ошибок, связанных с неисправным приложением.
Запустите приложение из командной строки
Многие ошибки запуска не содержат полезной информации в журналах событий. Вы можете найти причину некоторых ошибок, запустив приложение из командной строки в системе хостинга. Чтобы регистрировать дополнительные сведения из приложения, уменьшите уровень ведения журнала или запустите приложение в среде разработки.
Очистить кеш пакетов
Удалите папки bin и obj.
Очистите кэши пакетов, выполнив dotnet nuget locals all --clear из командной оболочки.
Очистку кэшей пакетов также можно выполнить с помощью средства nuget.exe и выполнения команды nuget locals all -clear . nuget.exe не устанавливается вместе с операционной системой Windows для настольных ПК и должен быть получен отдельно с веб-сайта NuGet.
Восстановите и перестройте проект.
Удалите все файлы в папке развертывания на сервере перед повторным развертыванием приложения.
Приложение работает медленно или не отвечает
Аварийный дамп — это моментальный снимок системной памяти, который может помочь определить причину сбоя приложения, сбоя при запуске или медленной работы приложения.
Приложение аварийно завершает работу или возникает исключение
Получить и проанализировать дамп из отчетов об ошибках Windows (WER):
Создайте папку для хранения файлов аварийного дампа в c:\dumps .
Запустите сценарий PowerShell EnableDumps с именем исполняемого файла приложения:
Запустите приложение в условиях, вызывающих сбой.
После сбоя запустите PowerShell-скрипт DisableDumps:
После сбоя приложения и завершения сбора дампа приложение может завершить работу в обычном режиме. Сценарий PowerShell настраивает WER для сбора до пяти дампов для каждого приложения.
Краш-дампы могут занимать много места на диске (до нескольких гигабайт каждый).
Приложение не отвечает, не работает при запуске или работает нормально
Когда приложение зависает (перестает отвечать, но не аварийно завершает работу), дает сбой при запуске или работает нормально, см. раздел Файлы дампа пользовательского режима: выбор наилучшего инструмента для выбора свалка.
Анализ дампа
Дамп можно анализировать несколькими способами. Дополнительные сведения см. в разделе Анализ файла дампа пользовательского режима.
Поддерживаемые выпуски
Даты окончания обслуживания версий Windows 10 сегментированы по выпускам. В следующей таблице рассматриваются только выпуски Home, Pro, Pro Education и Pro for Workstations. Дополнительные сведения см. в информационном бюллетене о жизненном цикле Windows.
Символ + обозначает минимальную версию.
Неподдерживаемые выпуски
Информация о времени выполнения
В Windows можно установить три различных среды выполнения:
Информация SDK
ПК с Windows на базе Arm
Что поддерживается
Различия путей
Конфликты путей
Переменные пути
Зависимости
Символ + обозначает минимальную версию.
ОС Версия Архитектуры Windows 11< /td> 21H2 x64, Arm64 Клиент Windows 10 1607+ x64, x86, Arm64 Клиент Windows 7 SP1+, 8.1 x64, x86 Windows Server 2012+ x64, x86 Windows Server Core 2012+ x64, x86 Nano Server 1809+ x64 Символ + обозначает минимальную версию.
ОС Версия Архитектуры Windows 11< /td> 21H2 x64, Arm64 Клиент Windows 10 1607+ x64, x86, Arm64 Клиент Windows 7 SP1+, 8.1 x64, x86 Windows Server 2012+ x64, x86 Windows Server Core 2012+ x64, x86 Nano Server 1809+ x64 Символ + обозначает минимальную версию.Требования к конкретной версии ОС см. в разделе «Поддерживаемые версии».
ОС Версия Архитектуры Windows 11< /td> 21H2 x64, Arm64 Клиент Windows 10 1607+ x64, x86 Клиент Windows 7 SP1+, 8.1 x64, x86 Windows Server 2012+ x64, x86 Nano Server 1803+ x64, Arm32 Символ + обозначает минимальную версию.
ОС Версия Архитектуры Клиент Windows< /td> 7 SP1+, 8.1 x64, x86 Клиент Windows 10 Версия 1607+ x64, x86 Windows Server 2012 R2+ x64, x86 Nano Server Версия 1803+ x64, Arm32 Символ + обозначает минимальную версию.
ОС Версия Архитектуры Клиент Windows< /td> 7 SP1+, 8.1 x64, x86 Клиент Windows 10 Версия 1607+ x64, x86 Windows Server 2008 R2 SP1+ x64, x86 Nano Server Версия 1803+ x64, Arm32 Символ + обозначает минимальную версию.
ОС Версия Архитектуры Клиент Windows< /td> 7 SP1+, 8.1 x64, x86 Клиент Windows 10 Версия 1607+ x64, x86 Windows Server 2008 R2 SP1+ x64, x86 Nano Server Версия 1803+ x64, Автономная установка для Windows 7
Обязательно ознакомьтесь с зависимостями, необходимыми для Windows 7 ниже.
Windows 7 / Vista / 8.1 / Server 2008 R2 / Server 2012 R2
Предыдущие требования также необходимы, если вы получаете сообщение об ошибке, связанное с одной из следующих библиотек DLL:
- api-ms-win-crt-runtime-l1-1-0.dll
- api-ms-win-cor-timezone-l1-1-0.dll
- hostfxr.dll
Установка с помощью автоматизации PowerShell
Сценарии dotnet-install используются для автоматизации CI и установки среды выполнения без прав администратора. Сценарий можно загрузить со страницы справочника по сценариям dotnet-install.
Установите SDK, опустив переключатель -Runtime. В этом примере для параметра -Channel установлено значение Current , что означает установку последней поддерживаемой версии.
Установить с помощью Visual Studio
Если у вас уже установлена Visual Studio, вы можете проверить свою версию, выполнив следующие действия.
- Откройте Visual Studio.
- Выберите «Справка» > «О Microsoft Visual Studio».
- Прочитайте номер версии в диалоговом окне «О программе».
Выберите рабочую нагрузку
При установке или изменении Visual Studio выберите одну или несколько из следующих рабочих нагрузок в зависимости от типа создаваемого приложения:
Установить вместе с Visual Studio Code
Visual Studio Code — это мощный и легкий редактор исходного кода, который работает на вашем рабочем столе. Visual Studio Code доступен для Windows, macOS и Linux.
Установщик Windows
/quiet
Предотвращает отображение пользовательского интерфейса и подсказок./norestart
Подавляет любые попытки перезагрузки.Установщик возвращает код выхода 0 в случае успеха и код выхода 3010, указывающий на необходимость перезагрузки. Любое другое значение обычно является кодом ошибки.
Скачать и установить вручную
Этот подход позволяет установить несколько версий в разные места, а затем явно выбрать, какое место установки должно использовать приложение, запустив приложение с переменными среды, указывающими на это место.
Докер
Контейнеры — это простой способ изолировать ваше приложение от остальной части хост-системы. Контейнеры на одном компьютере используют только ядро и ресурсы, предоставленные вашему приложению.
В следующих разделах показано, как использовать Microsoft Visual Studio для создания следующих типов развертываний:
- Развертывание в зависимости от платформы
- Развертывание в зависимости от платформы со сторонними зависимостями
- Автономное развертывание
- Автономное развертывание со сторонними зависимостями
Развертывание в зависимости от платформы
Создайте проект.
Добавьте исходный код приложения.
Откройте файл Program.cs или Program.vb в редакторе и замените автоматически сгенерированный код следующим кодом. Он предлагает пользователю ввести текст и отображает отдельные слова, введенные пользователем. Он использует регулярное выражение \w+ для разделения слов во входном тексте.
Создайте отладочную сборку своего приложения.
Выберите «Сборка» > «Сборка решения». Вы также можете скомпилировать и запустить отладочную сборку своего приложения, выбрав Отладка > Начать отладку.
Разверните приложение.
После того как вы отладили и протестировали программу, создайте файлы, которые будут развернуты вместе с вашим приложением. Чтобы опубликовать из Visual Studio, выполните следующие действия:
Измените конфигурацию решения с Debug на Release на панели инструментов, чтобы создать выпускную (а не отладочную) версию вашего приложения.
Щелкните правой кнопкой мыши проект (не решение) в обозревателе решений и выберите "Опубликовать".
На вкладке "Публикация" выберите "Опубликовать". Visual Studio записывает файлы, составляющие ваше приложение, в локальную файловую систему.
На вкладке "Публикация" теперь отображается один профиль, FolderProfile. Параметры конфигурации профиля отображаются в разделе «Сводка» вкладки.
Полученные файлы помещаются в каталог с именем "Опубликовать в Windows" и "Публиковать в системах Unix", который находится в подкаталоге вашего проекта .\bin\release\netcoreapp2.1.
Вместе с файлами вашего приложения процесс публикации создает файл базы данных программы (.pdb), который содержит отладочную информацию о вашем приложении. Файл полезен в первую очередь для отладки исключений. Вы можете не упаковывать его вместе с файлами вашего приложения. Однако вам следует сохранить его на тот случай, если вы захотите отладить выпускную сборку своего приложения.
Разверните полный набор файлов приложения любым удобным для вас способом. Например, вы можете упаковать их в Zip-файл, использовать простую команду копирования или развернуть их с любым установочным пакетом по вашему выбору. После установки пользователи могут запускать ваше приложение, используя команду dotnet и указав имя файла приложения, например dotnet fdd.dll .
В дополнение к двоичным файлам приложения ваш установщик также должен либо включать в себя установщик общей платформы, либо проверять его наличие в качестве предварительного условия при установке приложения. Для установки общей платформы требуется доступ администратора/корневого пользователя, поскольку она распространяется на всю машину.
Развертывание в зависимости от платформы со сторонними зависимостями
Развертывание зависимого от платформы развертывания с одной или несколькими сторонними зависимостями требует, чтобы все зависимости были доступны для вашего проекта. Перед созданием приложения необходимо выполнить следующие дополнительные действия:
Используйте диспетчер пакетов NuGet, чтобы добавить ссылку на пакет NuGet в свой проект; и если пакет еще не доступен в вашей системе, установите его. Чтобы открыть диспетчер пакетов, выберите Инструменты > Диспетчер пакетов NuGet > Управление пакетами NuGet для решения.
Подтвердите, что ваши сторонние зависимости (например, Newtonsoft.Json ) установлены в вашей системе, и если это не так, установите их. На вкладке «Установленные» перечислены пакеты NuGet, установленные в вашей системе. Если Newtonsoft.Json отсутствует в списке, выберите вкладку «Обзор» и введите «Newtonsoft.Json» в поле поиска. Выберите Newtonsoft.Json и на правой панели выберите свой проект, прежде чем нажать Установить.
Если Newtonsoft.Json уже установлен в вашей системе, добавьте его в свой проект, выбрав проект на правой панели вкладки «Управление пакетами для решения».
Зависимое от фреймворка развертывание со сторонними зависимостями является переносимым только в той же степени, что и его сторонние зависимости. Например, если сторонняя библиотека поддерживает только macOS, приложение нельзя перенести на системы Windows. Это происходит, если сторонняя зависимость сама по себе зависит от собственного кода. Хорошим примером этого является сервер Kestrel, для которого требуется собственная зависимость от libuv. Когда FDD создается для приложения с такой сторонней зависимостью, опубликованные выходные данные содержат папку для каждого идентификатора времени выполнения (RID), поддерживаемого собственной зависимостью (и существующего в его пакете NuGet).
Автономное развертывание без сторонних зависимостей
Создайте проект.
Добавьте исходный код приложения.
Откройте файл Program.cs или Program.vb в редакторе и замените автоматически сгенерированный код следующим кодом. Он предлагает пользователю ввести текст и отображает отдельные слова, введенные пользователем. Он использует регулярное выражение \w+ для разделения слов во входном тексте.
Определите, хотите ли вы использовать инвариантный режим глобализации.
В частности, если ваше приложение предназначено для Linux, вы можете уменьшить общий размер своего развертывания, воспользовавшись инвариантным режимом глобализации.Инвариантный режим глобализации удобен для приложений, которые не поддерживают глобальность и могут использовать соглашения о форматировании, соглашения о регистре, сравнение строк и порядок сортировки инвариантного языка и региональных параметров.
Чтобы включить инвариантный режим, щелкните правой кнопкой мыши свой проект (не решение) в обозревателе решений и выберите Изменить SCD.csproj или Изменить SCD.vbproj. Затем добавьте в файл следующие выделенные строки:
Создайте отладочную сборку вашего приложения.
Выберите «Сборка» > «Сборка решения». Вы также можете скомпилировать и запустить отладочную сборку своего приложения, выбрав Отладка > Начать отладку. Этот шаг отладки позволяет выявить проблемы с вашим приложением, когда оно работает на вашей хост-платформе. Вам все равно придется протестировать его на каждой из ваших целевых платформ.
Если вы включили инвариантный режим глобализации, обязательно проверьте, подходит ли отсутствие данных, зависящих от языка и региональных параметров, для вашего приложения.
После завершения отладки вы можете опубликовать автономное развертывание:
После отладки и тестирования программы создайте файлы, которые будут развернуты вместе с вашим приложением для каждой целевой платформы.
Чтобы опубликовать приложение из Visual Studio, выполните следующие действия:
Определите платформы, на которые будет ориентировано ваше приложение.
Щелкните правой кнопкой мыши свой проект (не решение) в обозревателе решений и выберите Изменить SCD.csproj.
Создайте тег в
раздел вашего файла csproj, определяющий платформы, на которые нацелено ваше приложение, и укажите идентификатор среды выполнения (RID) каждой целевой платформы. Вам также необходимо добавить точку с запятой для разделения RID. Список идентификаторов среды выполнения см. в каталоге идентификаторов среды выполнения.
Например, в следующем примере показано, что приложение работает в 64-разрядных операционных системах Windows 10 и 64-разрядной операционной системе OS X версии 10.11.
Элемент может находиться в любом
который у вас есть в файле csproj. Полный пример файла csproj приведен ниже в этом разделе.
Опубликуйте свое приложение.
После отладки и тестирования программы создайте файлы, которые будут развернуты вместе с вашим приложением для каждой целевой платформы.
Чтобы опубликовать приложение из Visual Studio, выполните следующие действия:
Измените конфигурацию решения с Debug на Release на панели инструментов, чтобы создать выпускную (а не отладочную) версию вашего приложения.
Щелкните правой кнопкой мыши проект (не решение) в обозревателе решений и выберите "Опубликовать".
На вкладке "Публикация" выберите "Опубликовать". Visual Studio записывает файлы, составляющие ваше приложение, в локальную файловую систему.
На вкладке "Публикация" теперь отображается один профиль, FolderProfile. Параметры конфигурации профиля отображаются в разделе «Сводка» вкладки. Целевая среда выполнения указывает, какая среда выполнения была опубликована, а целевое расположение указывает, где были записаны файлы для автономного развертывания.
Visual Studio по умолчанию записывает все опубликованные файлы в один каталог. Для удобства лучше всего создавать отдельные профили для каждой целевой среды выполнения и размещать опубликованные файлы в каталоге для конкретной платформы. Это включает в себя создание отдельного профиля публикации для каждой целевой платформы. Итак, теперь перестройте приложение для каждой платформы, выполнив следующие действия:
Выберите «Создать новый профиль» в диалоговом окне «Публикация».
В диалоговом окне "Выберите цель публикации" измените расположение папки на bin\Release\PublishOutput\win10-x64. Выберите ОК.
Выберите новый профиль (FolderProfile1) в списке профилей и убедитесь, что целевая среда выполнения — win10-x64. Если это не так, выберите Настройки. В диалоговом окне «Параметры профиля» измените целевую среду выполнения на win10-x64 и нажмите «Сохранить». В противном случае выберите Отмена.
Выберите «Опубликовать», чтобы опубликовать приложение для 64-разрядных платформ Windows 10.
Снова выполните предыдущие шаги, чтобы создать профиль для платформы osx.10.11-x64. Целевое расположение — bin\Release\PublishOutput\osx.10.11-x64, а целевая среда выполнения — osx.10.11-x64 . Имя, которое Visual Studio присваивает этому профилю, — FolderProfile2.
Вместе с файлами вашего приложения процесс публикации создает файл базы данных программы (.pdb), который содержит отладочную информацию о вашем приложении. Файл полезен в первую очередь для отладки исключений. Вы можете не упаковывать его вместе с файлами вашего приложения. Однако вам следует сохранить его на тот случай, если вы захотите отладить выпускную сборку своего приложения.
Разверните опубликованные файлы любым удобным для вас способом. Например, вы можете упаковать их в Zip-файл, использовать простую команду копирования или развернуть их с любым установочным пакетом по вашему выбору.
Ниже приведен полный файл csproj для этого проекта.
После отладки и тестирования программы создайте файлы, которые будут развернуты вместе с вашим приложением для каждой целевой платформы. Это предполагает создание отдельного профиля для каждой целевой платформы.
Для каждой платформы, на которую нацелено ваше приложение, выполните следующие действия:
Создайте профиль для целевой платформы.
Если это первый созданный вами профиль, щелкните правой кнопкой мыши проект (не решение) в обозревателе решений и выберите "Опубликовать".
Если вы уже создали профиль, щелкните проект правой кнопкой мыши, чтобы открыть диалоговое окно "Публикация", если оно еще не открыто. Затем выберите Новый профиль.
Откроется диалоговое окно "Выбор цели публикации".
Выберите место, где Visual Studio публикует ваше приложение.
Если вы публикуете только на одной платформе, вы можете принять значение по умолчанию в текстовом поле Выберите папку; это публикует зависимое от фреймворка развертывание вашего приложения в
Если вы публикуете на нескольких платформах, добавьте строку, идентифицирующую целевую платформу. Например, если вы добавите строку «linux» к пути к файлу, Visual Studio опубликует зависящее от платформы развертывание вашего приложения в
Создайте профиль, выбрав значок раскрывающегося списка рядом с кнопкой "Опубликовать" и выбрав "Создать профиль". Затем нажмите кнопку «Создать профиль», чтобы создать профиль.
Укажите, что вы публикуете автономное развертывание, и укажите платформу, на которую будет ориентировано ваше приложение.
В диалоговом окне "Публикация" выберите ссылку "Настроить", чтобы открыть диалоговое окно "Параметры профиля".
Выберите Автономный в списке Режим развертывания.
В списке Целевая среда выполнения выберите одну из платформ, на которые нацелено ваше приложение.
Нажмите "Сохранить", чтобы принять изменения и закрыть диалоговое окно.
Назовите свой профиль.
Выберите Действия > Переименовать профиль, чтобы назвать свой профиль.
Назначьте своему профилю имя, которое идентифицирует целевую платформу, затем нажмите *Сохранить.
Повторите эти шаги, чтобы определить любые дополнительные целевые платформы, на которые нацелено ваше приложение.
Вы настроили свои профили и теперь готовы опубликовать свое приложение. Для этого:
Если окно "Публикация" в данный момент не открыто, щелкните правой кнопкой мыши проект (не решение) в обозревателе решений и выберите "Опубликовать".
Выберите профиль, который хотите опубликовать, затем нажмите «Опубликовать». Сделайте это для каждого профиля, который нужно опубликовать.
Вместе с файлами вашего приложения процесс публикации создает файл базы данных программы (.pdb), который содержит отладочную информацию о вашем приложении. Файл полезен в первую очередь для отладки исключений. Вы можете не упаковывать его вместе с файлами вашего приложения. Однако вам следует сохранить его на тот случай, если вы захотите отладить выпускную сборку своего приложения.
Разверните опубликованные файлы любым удобным для вас способом. Например, вы можете упаковать их в Zip-файл, использовать простую команду копирования или развернуть их с любым установочным пакетом по вашему выбору.
Ниже приведен полный файл csproj для этого проекта.
Кроме того, Visual Studio создает отдельный профиль публикации (*.pubxml) для каждой целевой платформы. Например, файл для нашего профиля Linux (linux.pubxml) выглядит следующим образом:
Автономное развертывание со сторонними зависимостями
Развертывание автономного развертывания с одной или несколькими сторонними зависимостями включает в себя добавление зависимостей. Перед созданием приложения необходимо выполнить следующие дополнительные действия:
Используйте диспетчер пакетов NuGet, чтобы добавить ссылку на пакет NuGet в свой проект; и если пакет еще не доступен в вашей системе, установите его. Чтобы открыть диспетчер пакетов, выберите Инструменты > Диспетчер пакетов NuGet > Управление пакетами NuGet для решения.
Подтвердите, что ваши сторонние зависимости (например, Newtonsoft.Json ) установлены в вашей системе, и если это не так, установите их. На вкладке «Установленные» перечислены пакеты NuGet, установленные в вашей системе. Если Newtonsoft.Json отсутствует в списке, выберите вкладку «Обзор» и введите «Newtonsoft.Json» в поле поиска. Выберите Newtonsoft.Json и на правой панели выберите свой проект, прежде чем нажать Установить.
Если Newtonsoft.Json уже установлен в вашей системе, добавьте его в свой проект, выбрав проект на правой панели вкладки «Управление пакетами для решения».
Ниже приведен полный файл csproj для этого проекта:
Когда вы развертываете свое приложение, любые сторонние зависимости, используемые в вашем приложении, также содержатся в ваших файлах приложения. Сторонние библиотеки не требуются в системе, в которой работает приложение.
Вы можете развернуть автономное развертывание со сторонней библиотекой только на платформах, поддерживаемых этой библиотекой. Это похоже на наличие сторонних зависимостей с собственными зависимостями в вашем развертывании, зависящем от платформы, где собственные зависимости не будут существовать на целевой платформе, если они не были ранее установлены там.
- Приложения с плотным пользовательским интерфейсом для форм и данных (FOD)
- Отзывчивый пользовательский интерфейс с малой задержкой.
- Приложения, которые должны работать в автономном режиме/отключены от сети
- Приложения, зависящие от пользовательских драйверов устройств.
Установив свойства
в профиле публикации вы сможете развернуть урезанное автономное приложение в виде одного файла .exe, как показано в примере ниже.
Ключевые изменения
Начало работы
Посмотрите эти короткие видеоуроки:
try-convert – это глобальный инструмент, который вы можете установить на свой компьютер, а затем вызывать из интерфейса командной строки:
Как упоминалось ранее, если инструмент try-convert не сработал, вот материалы о том, как вручную перенести ваше приложение.
Оля Гавриш
Подписаться
Читать далее
91 комментарий
Хорошо… а как насчет UWP?
Оля Гавриш --> Оля Гавриш 6 ноября 2019 г. 6:25
"Мы планируем подготовить его к четвертому кварталу 2020 года..."
… подождите. Вы говорите нам, что вам нужен еще год для завершения конструктора WinForms? Вау!
Оля Гавриш --> Оля Гавриш 5 ноября 2019 г., 12:37
Работа в процессе, в мае мы надеемся получить зрелую версию, которая будет охватывать большинство сценариев, но если мы говорим о завершении всех функций — осень 2020 года — беспроигрышный вариант 🙂
этот комментарий был удален.
Тем временем предварительная версия работает очень хорошо.
Не торопитесь. Это IDE, на которую полагаются многие компании и разработчики, чтобы быть надежной и хорошо построенной. Мне нужно хорошо работать.
Это здорово, спасибо.
Каковы планы относительно развертывания? В настоящее время мы в значительной степени полагаемся на ClickOnce. MSIL сложнее использовать, чем публикацию ClickOnce, и я нигде не могу найти никаких заметок о конвейерах компакт-дисков для MSIL. Вы можете мне что-нибудь указать? Мы просто публикуем LOB-приложения, так что это все внутреннее, нет необходимости в Магазине или чем-то подобном.
Дэниел Джейкобсон --> Дэниел Джейкобсон 6 ноября 2019 г., 7:37
Ни одно из вышеперечисленных действий не требует загрузки в Магазин, но пакет MSIX позволит вам загружать в Магазин, если вы когда-нибудь будете создавать приложения, которые будут иметь смысл там.
Мы будем рады узнать больше о ваших требованиях к развертыванию приложений и посмотреть, сможем ли мы чем-то помочь. Если вы заинтересованы, свяжитесь со мной по адресу dajaco at microsoft dot com.
Я считаю, что пакеты MSIX являются преемниками MSIL или ClickOnce, и они также поддерживают Windows 7 (по какой-то причине). Проверить документы
Извините, это именно то, что я имел в виду, но я также не вижу никаких ресурсов для этого с компакт-диском. Я не вижу способа развернуть это автоматически, например, с помощью DevOps?
"Они по-прежнему останутся технологиями только для Windows, поскольку они тесно связаны с Windows API".
Ради всего святого, перестаньте проводить опросы, на самом деле прислушивайтесь к своим клиентам и РАЗДЕЛИТЕ ИХ.
Есть xamarin, avalonia, uno, blazor, winform, похожий на crossplate-form проект, я не могу вспомнить название, и множество небольших проектов, использующих wasm&electron или более низкий уровень. Уже есть много решений, чтобы сделать то, что вы просите. Что от этого выиграет экосистема, кроме попытки упростить портирование приложения (даже не уверен, что будет проще)
И каков ваш личный опыт создания удобного развертываемого приложения (с графическим интерфейсом) с любой из упомянутых вами платформ?
Ты что, шутишь? Мне нужны инструменты, а не игрушки. Если бы я хотел работать с мусором, я был бы разработчиком Android.
Winforms – это тонкая оболочка собственных элементов управления Win32. Перенос его на mac/linux будет эквивалентен написанию реализации win32 для этих ОС. Если вы хотите сделать это, просто запустите исполняемый файл с помощью WINE.
XAML был создан для создания ТЯЖЕЛЫХ пользовательских интерфейсов и использует DirectX/Direct3D для большинства своих возможностей рисования. Я бы рискнул сказать, что это тяжелая муфта. Лично я никогда не разогревался до WPF, так как он всегда был медленнее, чем WinForms.
И все же они каким-то образом заставили работать Silverlight.
Это НЕ техническая проблема.
Это НЕ финансовая проблема.Это проблема глупости.
этот комментарий был удален.
Это большой объем работы с большими финансовыми затратами, которые могут не окупиться в краткосрочной перспективе. Как разработчик Linux я вполне доволен направлением, в котором движется Microsoft. Однако это должен быть постепенный процесс, и я не ожидаю, что все произойдет за одну ночь. Необходимо немного терпения. Ожидание всего прямо сейчас — это немного «правомерно».
Взаимодействие — вы имеете в виду COM-взаимодействие?
"Interop and Remoting, вам потребуется реорганизовать код". Я предлагаю перевести это как "вы никогда не сможете использовать Interop или Remoting".
Кэтлин Доллард --> Кэтлин Доллард 6 ноября 2019 г., 14:56
Есть ли расчетное время прибытия?
Оля Гавриш --> Оля Гавриш 6 ноября 2019 г. 6:28
Я понял, спасибо.
Быть мертвым и обновляться с каждой версией ядра dotnet. Значит ли это, что это нежить?
Кэтлин Доллард --> Кэтлин Доллард 6 ноября 2019 г., 10:23
Я хотел бы предложить воспользоваться помощью команды «Windows Template Studio».
Особенно Сибилла, которая была хорошим человеком и оказала большую поддержку VB проекту.Но это на немецком языке.
Если это интересно, я могу поставить ссылку на ответ.
Я не знаю, разрешено ли здесь добавлять веб-ссылку на веб-страницу видеопортала.Извините за мой плохой английский и опечатки, но вы можете оставить их себе, это бесплатно… 🙂
c.u. и привет из ГерманииОля Гавриш --> Оля Гавриш 8 ноября 2019 г. 13:02
Оля Гавриш --> Оля Гавриш 8 ноября 2019 г. 13:59
Также (добавлю от себя) — не нужно извиняться за «мой плохой английский и мои опечатки». Замечательно, что вы говорите на другом языке, помимо родного, и так хорошо выражаете свои мысли. Я очень благодарен всем, кто дает конструктивные отзывы, а то, что вы делаете это на иностранном языке, заслуживает двойного спасибо! 🙂
Спасибо, дорогая госпожа Гавриш, за эти добрые слова.
В среднем я говорю на 4,45532 языках (человеческих языках), если объединить их все. 😉
Я с нетерпением жду вестей от миссис Доллард.
Хорошего дня.
Я установил дизайнер, но нет дополнительных опций в функциях предварительного просмотра и нет рабочего дизайнера.
VS 16.3.7Оля Гавриш --> Оля Гавриш 6 ноября 2019 г. 6:32
У вас должна быть установлена предварительная версия VS. Так как Конструктор находится в ранней предварительной версии, он доступен только в предварительной версии VS. Как только дизайнер станет достаточно зрелым, мы добавим его в основной канал VS
Я бы назвал то, что было выпущено в сентябре, эквивалентом предварительного просмотра фильма, когда сначала белый экран сопровождался случайными изображениями, перемежающимися статическими помехами: например, «совершенно непригодным для использования».
эээ… где хоть один пример такой истории для приложения Windows Form с богатым графическим интерфейсом?
Другими словами, разработчики Win Form, вложившие значительные средства в приложения, использующие существующие MS и 3rd. сторонние элементы управления (которые часто используют Win API) в значительной степени брошены под шину (опять же… предыдущей шиной был WPF и так называемый «современный» пользовательский интерфейс).
По «времени программиста» 4 место. квартал 2020 года — это все равно что «никогда».
Билл Вудрафф
Наставник CodeProject
CodeProject MVP, 2015, 2017, 2019Именно. Я хотел бы знать, что такое «история пользователя», пользователи, которые хотят преобразовать свои приложения WinForms в Core и никогда больше не касаться пользовательского интерфейса?
Ждать дизайнера целый год очень обидно.Все это напоминает мне Вольфганга Паули, нарисовавшего пустой квадрат в заметке с текстом: «Это для того, чтобы показать миру, что я могу рисовать, как Тициан. Отсутствуют только технические детали».
50% кода нашего «тестового оборудования» для многих алгоритмов — это «WinForms», поэтому:
Когда его нельзя было использовать в ядре 3.0, мы отложили проект (игнорировали его на 2 месяца), чтобы дождаться версии 3.1. .
Теперь мы замораживаем его еще на 9 месяцев.Это не соответствует быстрому темпу внедрения, как предлагается в статье, по крайней мере, для всех команд, с которыми я работаю.
На разных платформах:
Мы потеряли надежду на то, что кто-то доставит нам это, поэтому мы сделали свой собственный.
У нас есть «независимые от устройства» слои для наших пользовательских элементов управления, которые отображаются в WPF, HTML5, SVG, EMF и Bitmap.
Для многих элементов мы можем получить такое же представление на Windows, как и на планшете Android.
Нет очевидной причины, по которой это нельзя сделать для WPF в целом (если он с открытым исходным кодом), поскольку «входными данными» является XAML, который (как и HTML) не кажется каким-либо образом связанным, как мне кажется. можно увидеть конкретную реализацию для «Windows».
WinForms, возможно, немного сложнее изолировать, так как он больше похож на «оболочку win32», но нет ничего «невозможного»Есть вопросы о том, "почему вам может понадобиться несколько форматов приложений". Просто запустите опрос: некоторые люди «хотят иметь приложения и данные на своем ноутбуке с Windows». Некоторые «принимают только облачные данные и планшеты» и т. д. Некоторые предпочитают эти разные технологии, основанные на рабочих процессах, поэтому: Нам абсолютно необходимы инструменты, которые работают на многих платформах, включая пользовательский интерфейс.
Мерри МакГоу --> Мерри МакГоу 7 ноября 2019 г., 8:28
Мы прилагаем все усилия, чтобы новые функции были доступны в каждой поставляемой предварительной версии VS. Привязка данных, пользовательские элементы управления и поддержка сторонних элементов управления на данный момент являются нашими приоритетными задачами, но они появятся, как только мы сможем их реализовать. Однако, если вы не используете эти функции, вашей компании может не понадобиться заморозить проект на долгое время. И если вы используете эти функции, я хотел бы знать, какие из них и как вы используете в своей тестовой среде.
Спасибо,
~Merrie McGaw
главный разработчик WinFormsВы шутите: даже при использовании последнего обновления предварительного просмотра VS 2019 с проектом Core 3 WinForm простейшие элементы управления WinForm ToolBox не работают или ведут себя странно. См. упоминание об экране 4K ниже.
Элементы управления, которые вы помещаете в форму… после того, как вы вручную отредактировали Location, чтобы они отображались в форме… не записывают свои отредактированные свойства в файл Designer.cs; они не сохраняются вместе с файлом.
Во время разработки элементы управления, включая формы, нельзя перемещать или изменять размер с помощью щелчка и перетаскивания.
На экране ноутбука Dell с разрешением 4k настройки AutoScaleMode не имеют значения, а представление во время разработки отображается примерно на 25 % от представления во время выполнения.
Эти итерации непригодны для использования: их не следует выпускать в виде предварительных версий.
Я уже удалил последнюю предварительную версию VS 2019 и не собираюсь обращать внимание на дальнейшие разработки WinForm Core до следующего года… если вы не хотите нанять меня в качестве тестировщика 🙂
Мерри МакГоу --> Мерри МакГоу 8 ноября 2019 г., 9:13
Что касается вещей, связанных с HDPI, нам придется заняться этим немного позже, чтобы мы могли сначала заставить работать базовые функции. Но если мы услышим достаточно сообщений о том, что это блокирует работу, мы сможем расставить приоритеты над некоторыми другими сценариями.
Спасибо за отзыв и за то, что попробовали конструктор!
Спасибо за ответ. Может быть, у вас есть какие-то «намного лучшие» внутренние версии?
К сожалению, на форуме нет функции «Вставить изображение».
Если бы это было так, я думаю, вы бы посмеялись над этим.У меня есть простая библиотека с двумя формами.
Одна из них представляет собой набор кнопок, расположенных в форме периодической таблицы, с названиями элементов.
Еще не много. Простая сетка данных, которая показывает известные изотопы, когда вы нажимаете кнопку, и пару числовых текстовых полей «вверх/вниз». Одно из этих полей имеет значение по умолчанию «10».Коробка занимает примерно 6 дюймов в ширину и 5 дюймов в высоту на ноутбуке.
Большинство моих форм такие.
Некоторые могут использовать «Привязку данных». У нас есть много пользовательских элементов, которые, вероятно, являются пользовательскими элементами управления и пока не поддерживаются.
Мы организуем элементы с помощью групповых ящиков (не все)?
Групповое поле не поддерживается.Итак: из примерно 50 форм я еще не нашел ни одной, которая корректно отображается в дизайнере.
Очевидно, что я не могу предлагать подобные библиотеки кода для использования другими командами.
Я знаю, что люди «много работают». Проблема в следующем:
Вы не можете жить в доме, если крыша еще не установлена, несмотря на все усилия «кровельщиков».Мерри МакГоу --> Мерри МакГоу 7 ноября 2019 г., 8:15
В то же время Core Designer, который мы тестируем, работает для определенных сценариев, а среда выполнения полностью функциональна. Миграцию существующего кода можно начать прямо сейчас, и мы продолжим добавлять функциональные возможности в каждом выпуске VS. Как упомянула @Olia, мы надеемся выпустить стабильный и почти полный релиз во 2-м квартале 2020 года, потратив лето и начало осени на полировку. Мы тесно сотрудничаем с различными поставщиками элементов управления, чтобы убедиться, что они готовы поддерживать свои библиотеки элементов управления, поскольку им придется выполнять некоторые из тех же изменений архитектуры, что и мы.
Мы бы хотели, чтобы как можно больше людей оценили этот ранний предварительный просмотр и рассказали нам, как идут дела. Когда вы сталкиваетесь с чем-то, что не работает должным образом, мы просим людей отправить отзыв VS, чтобы мы знали, на чем нам нужно сосредоточиться при каждом выпуске предварительного просмотра. Мы также хотели бы знать, каких элементов конструктора больше всего не хватает нашим клиентам, поэтому мы отдаем приоритет этим сценариям.
Мы благодарим всех вас за терпение и очень рады той энергии, которую сообщество проявляет в отношении WinForms и конструктора WinForms!
~Мерри Макгоу
главный разработчик WinForms«Когда вы сталкиваетесь с чем-то, что не работает должным образом» — как мы узнаем, что должно работать? Есть ли список поддерживаемых/неподдерживаемых функций? Знаете проблемы? Изменены/добавлены функции для каждого выпуска?
Я проверил первоначальный (автономный) выпуск, и он даже не загрузил мои формы, потому что, по-видимому, он вообще не поддерживает унаследованные классы. Это предназначено? Как я должен знать?
Кроме того, почему предварительный просмотр теперь привязан к VS Preview? Почему бы не обновить автономную версию? Я не уверен, что захочу установить (и поддерживать) еще один экземпляр VS только для того, чтобы протестировать дизайнера в ранней, ранней, ранней предварительной версии.Оля Гавриш --> Оля Гавриш 8 ноября 2019 г. 13:39
да, вот Известные проблемы и
Примечания к выпуску для Designer Preview 1, и мы очень скоро опубликуем сообщение в блоге для Preview 2 (после всех объявлений Ignite).Мы очень ценим всех, кто тестирует конструктор и оставляет отзывы через канал обратной связи VS, это очень помогает нам находить ошибки и расставлять приоритеты в нашей работе.Мне жаль, что для некоторых из вас этот опыт не очень хорош, мы больше, чем кто-либо, хотим как можно быстрее довести дизайнер до стабильного зрелого состояния, и сообщество оказало большую помощь! Спасибо!
Спасибо. Если бы я голосовал, пожалуйста, отдайте приоритет поддержке унаследованных форм и пользовательских элементов управления. Без этого дизайнер практически бесполезен для меня (и я полагаю, что для большого процента реальных проектов).
"Предварительный просмотр Core Designer работает в определенных сценариях"
Я считаю, что вы действуете из лучших побуждений и действительно усердно работаете над сложной задачей; тем не менее, я должен ответить на подобное заявление так же, как ответил на заявление Оли:
в этой теме: покажите мне рабочий пример.
Я предлагаю вам собраться вместе с руководством и принять решение о прекращении выпуска предварительных версий, которые настолько нефункциональны, что являются пустой тратой времени разработчиков.
Сейчас я должен расценивать заявления об этих обновлениях как «пропаганду».
лол. Кто насрал в твои хлопья? Это «превью». Ключевое слово — «предварительный просмотр». Преодолейте себя.
Читайте также: