С Новым годом! Форум программистов, компьютерный форум, киберфорум
DevOps, облачные платформы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.81/21: Рейтинг темы: голосов - 21, средняя оценка - 4.81
0 / 0 / 0
Регистрация: 21.10.2021
Сообщений: 18

MS Azure Как опубликовать windows-приложение?

21.10.2021, 17:03. Показов 4730. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.

Есть необходимость сделать публикацию виндовс-приложения. Все бы ничего, но стартовые данные не очень хорошие.
Итак:
- у меня старый VS- то есть у меня не получится сделать публикацию через контейнер, и обновить VS видимо никак.
- у мене приложение не ASP.NET, не JAVA, не Node.js, не PHP и не Python.

У меня приложение вроде как .NET4

Какие есть варианты опубликовать его в службе приложения Azure?

Что-то какой-то тупик....

Сейчас это приложение работает в Azure на VM. Но необходимо перейти на приложение...

Если есть мысли - пишите...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.10.2021, 17:03
Ответы с готовыми решениями:

Не получается опубликовать приложение на Azure
пытаюсь опубликовать приложение на Azure и вот выдает такую грустную новость(

Как опубликовать приложение и связать БД с приложением?
Есть банальное приложение, которое использует БД(Sql Server). Когда я публикую проект соответственно БД туда не входит. Как опубликовать...

Как опубликовать программу C#.Net на Windows Form
Добрый вечер! Подскажите какую-нибудь статью-инструкцию или распишите, где обьясняется как вывести (опубликовать) проект С# на Windows Form...

27
Модератор
Эксперт функциональных языков программирования
3133 / 2280 / 469
Регистрация: 26.03.2015
Сообщений: 8,876
22.10.2021, 10:48
Зависит от того, что технически делает приложение (как общается с внешним миром) и какие технологии использует.
Example of migrating to .NET

Цитата Сообщение от bibitoon Посмотреть сообщение
у меня старый VS
VS - это что?
0
Фрилансер
 Аватар для FateOri
761 / 458 / 146
Регистрация: 06.01.2017
Сообщений: 4,856
22.10.2021, 11:26
Цитата Сообщение от Shamil1 Посмотреть сообщение
VS - это что?
VS = Visual Studio, расспространенное сокращение)
0
Модератор
Эксперт функциональных языков программирования
3133 / 2280 / 469
Регистрация: 26.03.2015
Сообщений: 8,876
22.10.2021, 12:06
Цитата Сообщение от bibitoon Посмотреть сообщение
у меня старый VS- то есть у меня не получится сделать публикацию через контейнер
Я не понимаю, какая связь между Вашей версией VS и возможностью публикации через контейнер.

Deploy existing .NET apps as Windows containers

Добавлено через 2 минуты
Code
1
mcr.microsoft.com/dotnet/framework/runtime:4.x-windowsservercore-20H2
0
0 / 0 / 0
Регистрация: 21.10.2021
Сообщений: 18
28.10.2021, 14:24  [ТС]
Добрый день. Спасибо за ответ.

Видимо действительно мой вариант это образ: ОС + .NET4.x + APP

В поиске mcr.microsoft.com/dotnet/framework/runtime:4.x-windowsservercore-20H2 находится на https://hub.docker.com/_/micro... k-runtime/

На docker.hub есть несколько вариантов создания образа по уже готовому dockerfile.

У меня на компе win10pro какой-то необновляемой версии LTSC.

Поэтому через dockerfile смог собрать только образ из раздела Windows Server Core 2019 amd64 Tags

Запускал сборку образа из каталога, где находится не только dockerfile но и мое приложение.

Вопрос! Как мне поменять dockerfile, чтобы при сборке образа туда залилось мое приложение?

Ниже содержимое dockerfile:

# escape=`

FROM mcr.microsoft.com/windows/servercore:ltsc2019-amd64

ENV COMPLUS_NGenProtectedProcess_FeatureEnab led=0

RUN `
# Install .NET Fx 4.8
curl -fSLo dotnet-framework-installer.exe https://download.visualstudio.... os-enu.exe `
&& .\dotnet-framework-installer.exe /q `
&& del .\dotnet-framework-installer.exe `
&& powershell Remove-Item -Force -Recurse ${Env:TEMP}\* `
`
# Apply latest patch
&& curl -fSLo patch.msu http://download.windowsupdate.... d78d60.msu `
&& mkdir patch `
&& expand patch.msu patch -F:* `
&& del /F /Q patch.msu `
&& dism /Online /Quiet /Add-Package /PackagePath:C:\patch\windows10.0-kb5005540-x64-ndp48.cab `
&& rmdir /S /Q patch `
`
# ngen .NET Fx
&& %windir%\Microsoft.NET\Framework64\v4.0. 30319\ngen uninstall "Microsoft.Tpm.Commands, Version=10.0.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=amd64" `
&& %windir%\Microsoft.NET\Framework64\v4.0. 30319\ngen update `
&& %windir%\Microsoft.NET\Framework\v4.0.30 319\ngen update


Уже несколько дней пытаюсь найти ответ в интернете и не нахожу.

Просьба помочь!
Миниатюры
MS Azure Как опубликовать windows-приложение?  
0
Модератор
Эксперт функциональных языков программирования
3133 / 2280 / 469
Регистрация: 26.03.2015
Сообщений: 8,876
28.10.2021, 18:26
Я не понимаю, зачем всё устанавливать самому. Можно взять подходящий образ, где уже стоит всё, что надо. Для запуска приложения используем образ с runtime 4.8 (dotnet/framework/runtime:4.8) или ASP.NET 4.8 (dotnet/framework/aspnet:4.8). Для сборки своего приложения используем образ с sdk 4.8 (dotnet/framework/sdk:4.8).

Докер файл (для MVC приложения) будет выглядеть примерно так:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
FROM mcr.microsoft.com/dotnet/framework/sdk:4.8 AS build
WORKDIR /app
 
# copy csproj and restore as distinct layers
COPY *.sln .
COPY aspnetmvcapp/*.csproj ./aspnetmvcapp/
COPY aspnetmvcapp/*.config ./aspnetmvcapp/
RUN nuget restore
 
# copy everything else and build app
COPY aspnetmvcapp/. ./aspnetmvcapp/
WORKDIR /app/aspnetmvcapp
RUN msbuild /p:Configuration=Release -r:False
 
 
FROM mcr.microsoft.com/dotnet/framework/aspnet:4.8 AS runtime
WORKDIR /inetpub/wwwroot
COPY --from=build /app/aspnetmvcapp/. ./

https://hub.docker.com/_/micro... -framework
Там есть ссылка, которая ведёт на список примеров:
https://github.com/microsoft/d... /README.md
0
0 / 0 / 0
Регистрация: 21.10.2021
Сообщений: 18
29.10.2021, 10:06  [ТС]
Цитата Сообщение от Shamil1 Посмотреть сообщение
WORKDIR /app/aspnetmvcapp
RUN msbuild /p:Configuration=Release -r:False
FROM mcr.microsoft.com/dotnet/framework/aspnet:4.8 AS runtime
WORKDIR /inetpub/wwwroot
COPY --from=build /app/aspnetmvcapp/. ./
Добрый день. Спасибо за ответ!

Я не понял, что делает код в этих строках. Можете дать небольшое описание? Спасибо.
0
Модератор
Эксперт функциональных языков программирования
3133 / 2280 / 469
Регистрация: 26.03.2015
Сообщений: 8,876
29.10.2021, 11:20
WORKDIR Задаётся текущая директория для последующих команд. В данном случае для одной команды RUN.
RUN собирается проект (выполняется msbuild /p:Configuration=Release -r:False)

Инструкция FROM начинает новую стадию сборки и ссылается на образ, который в ней используется.
FROM mcr.microsoft.com/dotnet/framework/aspnet:4.8 AS runtime
Так как наше приложение уже собрано на предыдущей стадии, нам не нужны sdk и прочие фичи, которые используются только в процессе сборки. Поэтому мы используем образ, в котором есть всё для запуска ASP.NET MVC 4.8 приложений.

Инструкция WORKDIR устанавливает текущую директория для других команд (RUN, CMD, ENTRYPOINT, COPY, ADD) данной стадии сборки.
WORKDIR /inetpub/wwwroot

Инструкция COPY копирует файлы и/или директории.
COPY --from=build /app/aspnetmvcapp/. ./
В данном случае копирует из папки /app/aspnetmvcapp/ стадии build в текущую папку текущей стадии (была задана инструкцией WORKDIR)

Здесь "build" - это алиас другой стадии, который мы задали другой инструкцией FROM
FROM mcr.microsoft.com/dotnet/framework/sdk:4.8 AS build
Можете считать её другой ВМ, которая использовалась только для сборки (на ней установлены sdk и прочие фичи, которые нужны для сборки ASP.NET MVC 4.8 приложений). На "нашей итоговой ВМ" не будет никаких msbuild и прочих ненужных вещей.

Если бы у нас было приложение, которое нужно запустить, то далее понадобилась бы инструкция RUN, CMD или ENTRYPOINT. В данном случае это не требуется, так как IIS уже запущен.
0
0 / 0 / 0
Регистрация: 21.10.2021
Сообщений: 18
29.10.2021, 11:21  [ТС]
Цитата Сообщение от Shamil1 Посмотреть сообщение
COPY *.sln .
COPY aspnetmvcapp/*.csproj ./aspnetmvcapp/
COPY aspnetmvcapp/*.config ./aspnetmvcapp/
Мое приложение это один файл с расширением .exe

Его не нужно компилировать, приложение готово к работе!
0
Модератор
Эксперт функциональных языков программирования
3133 / 2280 / 469
Регистрация: 26.03.2015
Сообщений: 8,876
29.10.2021, 11:46
COPY *.sln .
COPY aspnetmvcapp/*.csproj ./aspnetmvcapp/
COPY aspnetmvcapp/*.config ./aspnetmvcapp/
копирует с компа, на котором происходит сборка, в текущий "контейнер" (алиас build)

COPY --from=build /app/aspnetmvcapp/. ./
копирует из "контейнера" build в текущий "контейнер" (алиас runtime)

Добавлено через 5 минут
Цитата Сообщение от bibitoon Посмотреть сообщение
Мое приложение это один файл с расширением .exe
Его не нужно компилировать, приложение готово к работе!
Тогда вам достаточно одной стадии.
FROM <подходящий образ runtime> AS myalias
COPY myapp.exe .\
CMD myapp.exe

Добавлено через 2 минуты
Цитата Сообщение от bibitoon Посмотреть сообщение
Его не нужно компилировать, приложение готово к работе!
Обычно смысл в том, чтобы собрать приложение в подходящем окружении и поместить его в контейнер. Чтобы настройки/окружение Вашего компьютера не влияли на результат.

Добавлено через 2 минуты
Цитата Сообщение от Shamil1 Посмотреть сообщение
подходящий образ runtime
Для консольного приложения, скорее всего, подойдёт mcr.microsoft.com/dotnet/framework/runtime:4.8

Добавлено через 3 минуты
Цитата Сообщение от Shamil1 Посмотреть сообщение
CMD myapp.exe
Наверное, всё-таки лучше
ENTRYPOINT ["myapp.exe"]
(тогда не будет запускаться оболочка, если я правильно понимаю)
0
0 / 0 / 0
Регистрация: 21.10.2021
Сообщений: 18
29.10.2021, 13:38  [ТС]
Спасибо!
Процесс пошел веселее!
Вот мой код:

FROM mcr.microsoft.com/dotnet/framework/sdk:4.8 AS build
RUN MKDIR /liw2
WORKDIR /liw2
COPY . .
EXPOSE 8080
CMD ["dotnet", "testaaa.exe"]

После сборки образа необходимо локально проверить как он работает. Поэтому на этапе сборки образа пришлось добавить строку:
EXPOSE 8080

Набираю docker run -d -p 8080:8080 --name myliw app-liw-1

Без команды "-d" контейнер никак не создается.

Командой "-p 8080:8080" указываю, что посмотреть можно по адресу: http://localhost:8080

Докер контейнер создал.

Но сайт http://localhost:8080 не открывается: не удается получить доступ к сайту.

Соответственно вопрос:

1)почему сайт не открывается?

2)как посмотреть, что в содержимое образа входит мое приложение?
0
Модератор
Эксперт функциональных языков программирования
3133 / 2280 / 469
Регистрация: 26.03.2015
Сообщений: 8,876
29.10.2021, 14:53
Цитата Сообщение от bibitoon Посмотреть сообщение
CMD ["dotnet", "testaaa.exe"]
Вы свою программу запускаете командой "dotnet testaaa.exe"?
Попробуйте вместо этого
ENTRYPOINT ["testaaa.exe"]


Цитата Сообщение от bibitoon Посмотреть сообщение
Но сайт http://localhost:8080 не открывается: не удается получить доступ к сайту.
Пишет, что нет такого сайта? Добавьте в список файлов тестовый статический хтмл, чтобы можно было убедиться в существовании сайта.
0
0 / 0 / 0
Регистрация: 21.10.2021
Сообщений: 18
29.10.2021, 16:05  [ТС]
Цитата Сообщение от Shamil1 Посмотреть сообщение
Вы свою программу запускаете командой "dotnet testaaa.exe"?
Попробуйте вместо этого
ENTRYPOINT ["testaaa.exe"]
Я не знаю как правильно написать код по запуску программы.
Посмотрел как запускается скрипт под Python: (CMD ["python", "app.py"]).
Не понял на что мне поменять "pytnon".
Вписал "dotnet". Результат, как говориться, на табло.
0
0 / 0 / 0
Регистрация: 21.10.2021
Сообщений: 18
29.10.2021, 16:19  [ТС]
Цитата Сообщение от Shamil1 Посмотреть сообщение
Вы свою программу запускаете командой "dotnet testaaa.exe"?
Попробуйте вместо этого
ENTRYPOINT ["testaaa.exe"]
Вот этот вариант заработал! Спасибо!
Миниатюры
MS Azure Как опубликовать windows-приложение?  
0
0 / 0 / 0
Регистрация: 21.10.2021
Сообщений: 18
29.10.2021, 16:35  [ТС]
Цитата Сообщение от Shamil1 Посмотреть сообщение
Сообщение от bibitoon
Но сайт http://localhost:8080 не открывается: не удается получить доступ к сайту.
Пишет, что нет такого сайта? Добавьте в список файлов тестовый статический хтмл, чтобы можно было убедиться в существовании сайта.
Сейчас сделаю...

Добавлено через 15 минут
Цитата Сообщение от bibitoon Посмотреть сообщение
Сообщение от Shamil1
Сообщение от bibitoon
Но сайт http://localhost:8080 не открывается: не удается получить доступ к сайту.
Пишет, что нет такого сайта? Добавьте в список файлов тестовый статический хтмл, чтобы можно было убедиться в существовании сайта.
Сейчас сделаю...
Добавил пустой файл index.html пересобрал образ - сайт не открывается.
0
Модератор
Эксперт функциональных языков программирования
3133 / 2280 / 469
Регистрация: 26.03.2015
Сообщений: 8,876
29.10.2021, 17:48
Цитата Сообщение от bibitoon Посмотреть сообщение
Добавил пустой файл index.html пересобрал образ - сайт не открывается.
а откуда сайт берётся, если у Вас exe?

Добавлено через 1 минуту
Вы используете образ mcr.microsoft.com/dotnet/framework/sdk:4.8
В нём, наверное, IIS нет совсем.

Возмите рантайм какой-нибудь (сдк не нужен) с IIS
Какого типа у Вас приложение? Что оно требует для работы?
0
0 / 0 / 0
Регистрация: 21.10.2021
Сообщений: 18
01.11.2021, 09:15  [ТС]
Цитата Сообщение от Shamil1 Посмотреть сообщение
Вы используете образ mcr.microsoft.com/dotnet/framework/sdk:4.8
В нём, наверное, IIS нет совсем.
Этот образ использовал.

Добавлено через 26 секунд
Цитата Сообщение от Shamil1 Посмотреть сообщение
Возмите рантайм какой-нибудь (сдк не нужен) с IIS
ОК. Спасибо! Пробую!

Добавлено через 1 минуту
Цитата Сообщение от Shamil1 Посмотреть сообщение
Какого типа у Вас приложение? Что оно требует для работы?
Мое приложение требует Win + IIS, поэтому я сначала и собирал образ на базе цшт2019
0
0 / 0 / 0
Регистрация: 21.10.2021
Сообщений: 18
01.11.2021, 10:28  [ТС]
Цитата Сообщение от Shamil1 Посмотреть сообщение
Вы используете образ mcr.microsoft.com/dotnet/framework/sdk:4.8
В нём, наверное, IIS нет совсем.
Возмите рантайм какой-нибудь (сдк не нужен) с IIS
Какого типа у Вас приложение? Что оно требует для работы?
Создаю на своем компе новую папку. И в этой папке меняю:
- запись sdk:4.8 на runtime:4.8
- и меняю папку обмена на liw2

Запускаю сборку образа: docker build -t app-liw-2 .

Сборка образа запускается, но вываливается с ошибкой. Образ не создается, зато создается контейнер! Фантастика!

Ох, уж этот Docker!!!
Миниатюры
MS Azure Как опубликовать windows-приложение?  
0
Модератор
Эксперт функциональных языков программирования
3133 / 2280 / 469
Регистрация: 26.03.2015
Сообщений: 8,876
01.11.2021, 15:32
Цитата Сообщение от bibitoon Посмотреть сообщение
Мое приложение требует Win + IIS, поэтому я сначала и собирал образ на базе цшт2019
Попробуйте mcr.microsoft.com/dotnet/framework/aspnet:4.8
0
0 / 0 / 0
Регистрация: 21.10.2021
Сообщений: 18
01.11.2021, 15:53  [ТС]
Цитата Сообщение от Shamil1 Посмотреть сообщение
Сообщение от bibitoon
Мое приложение требует Win + IIS, поэтому я сначала и собирал образ на базе цшт2019
Попробуйте mcr.microsoft.com/dotnet/framework/aspnet:4.8
Сделал. Образ получился и контейнер запустился! Но, как и в случае с sdk:4.8 Сайт localhost:8080 не открывается.

Не помогает наличие пустого файла index.html

Вот содержимое dockerfile:

FROM mcr.microsoft.com/dotnet/framework/aspnet:4.8 AS build
RUN MKDIR /liw2
WORKDIR /liw2
COPY . .
EXPOSE 8080
ENTRYPOINT ["testaaa.exe"]
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.11.2021, 15:53
Помогаю со студенческими работами здесь

Не могу опубликовать приложение
У приложения такая структура файлов( Как на картинке). Не могу нормально опубликовать приложение. Не получаю информацию из базы данных....

Опубликовать приложение в AppStore
Сделал мобильное приложение из 1С. Сконвертировал его в iOS в проект Xcode, теперь хочу его опубликовать в AppStore. Так как в iOS...

Опубликовать приложение на Visual Studio 2010
Помогите пожалуйста решит проблему. Приложение соединен с базой данных находящийся на SQL SERVER, процесс публикации проходить без...

Связывание приложение и бд на Azure
Доброго времени суток, попробовал залить проект используя azure. На tomcat все отрабатывает как и должно, но при деплое на азур сервлеты...

Без лицензии Adobe Animate CC 2017 опубликовать приложение в PlayMarket.
не имея лицензии на Adobe Animate CC 2017 можно опубликовать приложение на PlayMarket ?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru