41 / 37 / 9
Регистрация: 01.02.2014
Сообщений: 825

Объединить .net core и .net framework в одном проекте

30.09.2019, 13:58. Показов 11628. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, требуется объединить .net core 3.0 (wpf) и .net framework (В идеале: 4.5.2 , но можно и 4.7.2) в один проект. Суть вообще такая, что чтобы на windows без .net Core программа запускалась через framework . Чтобы не требовалось ставить .net core специально. Можно ли так сделать?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.09.2019, 13:58
Ответы с готовыми решениями:

Разница между .Net Framework и .Net Core
Собственно, основной вопрос в названии темы. Из прочитанных статей понял, что core призван обьединить разнообразные api,...

Можно ли использовать сборку из .NET Core в обычном ASP .NET проекте ?
Microsoft.Extensions.Logging очень удобная штука, в обычном .NET её никак нельзя задействовать ? Может есть аналоги ?

Объясните на пальцах совместимость библиотек в .Net Core, .Net Framework, .Net Standart
Изучаю .Net. Хочу написать некое серверное приложение (думаю что учеба лучше на реальном примере, нежели писать примитивные hello world)....

24
Эксперт .NET
6525 / 4101 / 1606
Регистрация: 09.05.2015
Сообщений: 9,564
30.09.2019, 13:59
Почему просто не собрать ваше приложение как self contained или single file? Оба варианта не требуют установки ни .NET Core ни .NET Framework на целевой системе для запуска приложения...
1
41 / 37 / 9
Регистрация: 01.02.2014
Сообщений: 825
30.09.2019, 14:06  [ТС]
Someone007, не очень вас понял.

Забыл упомянуть , я хочу использовать avalonia . Чтобы поддерживался кроссплатформенный wpf .
Не хочу писать 2 приложения одновременно (1 под дефолтный виндовс , 2 под остальные системы)
Хочу чтобы 1 проект запускался на всех системах, но чтобы основное кол-во пользователей на windows не устанавливали .net core для этого

Добавлено через 3 минуты
Someone007,я прочитал про self contained
На сколько много будет весить такое приложение. Для меня даже 60 мб пустого приложения avalonia - достаточно большой вес, а если я буду класть весь .net core в придачу..? Это вес моего приложения будет порядка 500+ мб?
0
Эксперт .NET
6525 / 4101 / 1606
Регистрация: 09.05.2015
Сообщений: 9,564
30.09.2019, 14:07
Цитата Сообщение от MakcPletnev Посмотреть сообщение
не очень вас понял
.NET Core application deployment

Добавлено через 59 секунд
Цитата Сообщение от MakcPletnev Посмотреть сообщение
На сколько много будет весить такое приложение.
Соберите и посмотрите сколько весит. Пустое приложение порядка 140мб, с триммингом 80мб.
1
41 / 37 / 9
Регистрация: 01.02.2014
Сообщений: 825
30.09.2019, 14:08  [ТС]
Someone007, суть в том, что на большинстве виндовс машин уже установлен .net framework 4.5.2+ . Т.е пользователь просто качает и запускает софтину, ему больше ничего не требуется

но если он хочет использовать osx, то тогда он без проблем скачает себе .net core на машину (Либо же для остальных cистем можно делать self contained)
Главное чтобы кодовая база была одна
0
Эксперт .NET
6525 / 4101 / 1606
Регистрация: 09.05.2015
Сообщений: 9,564
30.09.2019, 14:09
По идее вы еще можете сделать multi targeting, отдельные бинарники под .NET Framework и отдельные под .NET Core...
1
41 / 37 / 9
Регистрация: 01.02.2014
Сообщений: 825
30.09.2019, 14:16  [ТС]
Someone007, вот я примерно это хочу сделать.. Понял как это называется, сейчас буду разбираться. Для меня грузить отдельные бинарники на сервер не проблема, а вот дополнительно нагружать 150 метров веса - проблема. Приложение должно быть легковесным для большинства пользователей (Оно почти ничего не делает и будет странно, если оно будет весить 200-300мб)
0
Эксперт .NET
6525 / 4101 / 1606
Регистрация: 09.05.2015
Сообщений: 9,564
30.09.2019, 14:16
И вообще вы меня запутали, сначала у вас написано WPF, потом Avalonia, а она под .NET Framework работает вообще?
1
41 / 37 / 9
Регистрация: 01.02.2014
Сообщений: 825
30.09.2019, 15:34  [ТС]
Someone007, да, вроде как под .net framework 4.6.1 работает) И вес всего 16мб при компиляции под фреймворк, что вполне устраивает

Вы кстати использовали Avalonia? я не особо понял в чем разница между
app
и
app-mvvm

Чего такого мне даст этот mvvm , чего я не смогу сделать на простом App?

Добавлено через 22 минуты
Someone007, и я как-то не очень понял, на linux можно скомпилировать исполняемый файл как под win?

Чтобы пользователь скачал архив, распаковал и просто нажал на что-то в папке, чтобы программа скомпилировалась и запустилась?
Я, когда разворачивал сервер под linux просто писал dotnet run , но ведь будет странно заставлять юзера делать это вручную..?
0
Эксперт .NET
6525 / 4101 / 1606
Регистрация: 09.05.2015
Сообщений: 9,564
30.09.2019, 15:52
Цитата Сообщение от MakcPletnev Посмотреть сообщение
Вы кстати использовали Avalonia? я не особо понял в чем разница между
app
и
app-mvvm
Скорее всего разница лишь в том, что заранее созданы классы модели, view и т.д.

Цитата Сообщение от MakcPletnev Посмотреть сообщение
на linux можно скомпилировать исполняемый файл как под win?
Можно. Обычно это файл без расширения с именем, совпадающим с названием проекта.
Обычно все необходимые файлы создаются используя команду dotnet publish (с нужными аргументами) или её аналог из меню VS.
1
800 / 583 / 207
Регистрация: 21.02.2019
Сообщений: 2,095
30.09.2019, 15:55
MakcPletnev,
.. сам (пока) не пробовал под linux self-contained деплоить, но в принципе, если студия публикует его как linux-executable (делает ему chmod x), то он таким и остается на целевой машине и может быть запущен ... Но это надо еще почитать/попробовать ..
1
Эксперт .NET
6525 / 4101 / 1606
Регистрация: 09.05.2015
Сообщений: 9,564
30.09.2019, 16:33
Кстати в шаблоне проекта Avalonia по умолчанию уже есть мультитаргетинг...
XML
1
<TargetFrameworks>netcoreapp2.1;net461</TargetFrameworks>
т.е. собирается сразу под .NET Core 2.1 и .NET Framework 4.6.1

Добавлено через 10 минут
Пустое self contained приложение Avalonia на .NET Core 2.1 под линукс получается 87 МБ, под винду 78,8 МБ.
Ну а под .NET Framework 15 МБ, т.к. тут self contained не применимо.

Добавлено через 22 минуты
C триммингом размер self contained приложения (.NET Core 3.0) уменьшился с 90.3 МБ до 59.3 МБ.
Code
1
dotnet publish -f netcoreapp3.0 -c Release -r win-x64 --self-contained true /p:PublishTrimmed=true
правда после этого оно перестало запускаться, т.к. триммер перестарался, пришлось добавить в файл проекта
XML
1
2
3
  <ItemGroup>
    <TrimmerRootAssembly Include="mscorlib" />
  </ItemGroup>
после чего приложение снова заработало.
1
41 / 37 / 9
Регистрация: 01.02.2014
Сообщений: 825
30.09.2019, 18:09  [ТС]
Someone007, запуск на linux интересует. с windows разобрался, там все делается как вы и сказали через фреймворк на 15 мб.
На линукс сделал через dotnet publish
и на сколько я понял, запускается это дело через dotnet app.dll
(Это не очень удобно для рядового юзера, хотя опять же, тот кто сидит за linux, наверное, не считается рядовым юзером)
carrotik, на счет вашего - не понял. У меня ничего такого не происходит, можете описать как вы это делаете? На сколько я понял, вы говорите, что можно скомпилировать так, что будет запускаться через UI интерфейс linux?

Сейчас ставлю MacOS на vmWare , буду смотреть как там это можно запустить. Хотелось бы конечно так же, как и на виндовс, просто стартануть какой-нибудь файл, который все запустит сам.
Может тоже есть советы? Очень мало инфы про avalonia для запуска не под windows. Точнее она есть, но даже мне как программисту не очень понятны некоторые шаги, что тогда говорить о простых юзерах ..
0
Эксперт .NET
6525 / 4101 / 1606
Регистрация: 09.05.2015
Сообщений: 9,564
30.09.2019, 18:33
Цитата Сообщение от MakcPletnev Посмотреть сообщение
и на сколько я понял, запускается это дело через dotnet app.dll
Нет, еще раз повторяю
Цитата Сообщение от Someone007 Посмотреть сообщение
Обычно это файл без расширения с именем, совпадающим с названием проекта.
Добавлено через 8 минут
Например если у вас проект называется AvaloniaApplication2, то делая publish для винды вы получите исполняемый файл AvaloniaApplication2.exe, а для Linux - AvaloniaApplication2.
1
41 / 37 / 9
Регистрация: 01.02.2014
Сообщений: 825
30.09.2019, 18:54  [ТС]
Someone007, сейчас пробую..

Добавлено через 14 минут
Someone007, лол.. Оказывается нужно указывать систему для публикации вручную. Спасибо, вроде бы разобрался.

Если вручную указать -r linux-x64 , то все отлично компилит с файлом без расширения. Поставлю пустую линуху, в теории такое приложение должно запуститься на ней? верно?

Code
1
dotnet publish -f netcoreapp2.0 -c Release -r linux-x64 --self-contained true
Работает для меня. В теории это то что мне нужно!

Добавлено через 3 минуты
Осталось разобраться с macos , буду пробовать сегодня через пару часов, отпишусь по результату. Если кто-то знает как там построить проект - буду благодарен! Кстати , может кто знает почему macos так нищадно лагает на vmware ?

Upd:
Code
1
dotnet publish -f netcoreapp2.0 -c Release -r osx --self-contained true
не работает..
0
Эксперт .NET
6525 / 4101 / 1606
Регистрация: 09.05.2015
Сообщений: 9,564
30.09.2019, 19:23
Цитата Сообщение от MakcPletnev Посмотреть сообщение
Осталось разобраться с macos
.NET Core RID Catalog

Добавлено через 5 минут
Цитата Сообщение от MakcPletnev Посмотреть сообщение
Поставлю пустую линуху, в теории такое приложение должно запуститься на ней? верно?
Могут потребоваться некоторые системные библиотеки.

https://docs.microsoft.com/en-... =netcore30
1
41 / 37 / 9
Регистрация: 01.02.2014
Сообщений: 825
01.10.2019, 11:33  [ТС]
Someone007, я пробовал так вчера. Компилил правда на Linux , но писал что надо под mac . И не получалось запускать этот файл, такое чувство , что там пути неверно указаны были. Сейчас попробую под маком скомпилить
0
41 / 37 / 9
Регистрация: 01.02.2014
Сообщений: 825
01.10.2019, 12:12  [ТС]
вот что пишет
Миниатюры
Объединить .net core и .net framework в одном проекте  
0
41 / 37 / 9
Регистрация: 01.02.2014
Сообщений: 825
01.10.2019, 15:52  [ТС]
тут проблемы с самой avalonia , там нужно подключать какие-то не дефольные библиотеки ..
сейчас попробую разобраться

Добавлено через 2 часа 31 минуту
Someone007,

Code
1
dotnet publish -c Release -f netcoreapp2.1 -r osx-x64 -o publish-osx
Вот так все работает)
в папке publish-osx лежит self-contained сборка, которая отлично работает на mac без предустановки .net core)
Пойду теперь само приложение делать)))

Кстати, созрел новый вопрос, как под MacOS свернуть всю программу в 1 исполняемый файл?
И еще 1 вопрос.. как сделать систему обновления под MacOS ?

На виндовс у меня просто качаются файлы в папку рядом с программой, потом закрывается основная программа и запускается программа Updater.exe , которая просто копирует с заменой обновленные файлы в основную папку.
Каким образом на MacOS обновлять программу?

UPD: Если кому интересно, то тестировал это все я на примерах из https://github.com/AvaloniaUI/... -templates
0
Эксперт .NET
6525 / 4101 / 1606
Регистрация: 09.05.2015
Сообщений: 9,564
01.10.2019, 16:03
Лучший ответ Сообщение было отмечено MakcPletnev как решение

Решение

Цитата Сообщение от MakcPletnev Посмотреть сообщение
Кстати, созрел новый вопрос, как под MacOS свернуть всю программу в 1 исполняемый файл?
Так же как и на Windows или Linux
Code
1
dotnet publish -r osx-x64 -c Release /p:PublishSingleFile=true
Чтобы сократить размер можно еще добавить
Code
1
dotnet publish -r osx-x64 -c Release /p:PublishSingleFile=true /p:PublishTrimmed=true
но может потребоваться правка файла проекта в плане добавления инструкций IL линкеру как я уже писал выше https://www.cyberforum.ru/post13864893.html
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.10.2019, 16:03
Помогаю со студенческими работами здесь

Как вызвать из .NET Framework 4 функцию NET Core 2
Собственно сабж Есть проект на .NET Framework 4.0. И библиотека на .NET Core, откуда я хочу вызвать функцию, но когда выполнение кода...

Отсутствует возможность добавления Модель данных ADO NET EDM в Visual Studio в проекте net core
Создал новый проект веб-приложение на net core . В Nu get добавил Entity Framework 6.2, Mysql.data, mysql.data.entity, mysql.web. Но когда...

В списке Target Framework не выбирается .NET Framework 4 только .NET Framework 4 Client Profile
Свойства проекта (Project -&gt; Properties) -&gt; вкладка Compile -&gt; Advenced complie options -&gt; в списке Target Framework не выбирается .NET...

.NET Framework 4 в проекте
Приложение создано на платформе NET Framewok 4. При пробной демонстрации на другом компьютере просит установить framwork 4.0. Вопрос, как...

Что выбрать - WPF .Net Core или WPF .Net Framework + буду работать с SQLite (также интересно какую версию БД выбрать)?
Всем привет. Ниже необязательная предыстория, высказался просто) Тут наконец вновь взялся за мелкую приложуху для Windows 7,...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

Новые блоги и статьи
Как писать чистый, тестируемый и качественный код на Python
py-thonny 12.07.2025
Помню свой первый проект на Python. Работал тогда быстро, грязно, лишь бы работало. Код был похож на запутанный клубок - переменные по одной букве, функции на 200 строк, комментарии отсутствовали как. . .
Blazor и контроллер сервопривода IoT Meadow Maple
Wired 11.07.2025
Я решил разобраться, как можно соединить современные веб-технологии с миром "железа". Интересная комбинация получилась из Blazor в качестве веб-интерфейса и микроконтроллера Meadow с его веб-сервером. . .
Генерация OpenQASM из кода Q#
EggHead 10.07.2025
Летом 2024-го я начал эксперименты с библиотекой Q# Bridge, и знаете что? Она оказалась просто находкой для тех, кто работает на стыке разных квантовых экосистем. Основная фишка этой библиотеки -. . .
Изучаем новый шаблон ИИ-чата .NET AI Chat Web App
stackOverflow 10.07.2025
В . NET появилось интересное обновление - новый шаблон ИИ-чата под названием . NET AI Chat Web App. Когда я впервые наткнулся на анонс этого шаблона, то сразу понял, что Microsoft наконец-то. . .
Результаты исследования от команды ARP (июль 2025 г.)
Programma_Boinc 10.07.2025
Результаты исследования от команды ARP (июль 2025 г. ) Африканский проект по дождям (ARP) World Community Grid снова запущен! Мы рады поделиться обновленной информацией о нашем прогрессе с осени. . .
Angular vs Svelte - что лучше?
Reangularity 09.07.2025
Сегодня рынок разделился на несколько четких категорий: тяжеловесы корпоративного уровня (Angular), гибкие универсалы (React), прогрессивные решения (Vue) и новая волна компилируемых фреймворков. . .
Code First и Database First в Entity Framework
UnmanagedCoder 09.07.2025
Entity Framework дает нам свободу выбора, предлагая как Code First, так и Database First подходы. Но эта свобода порождает вечный вопрос — какой подход выбрать? Entity Framework — это. . .
Как использовать Bluetooth-модуль HC-05 с Arduino
Wired 08.07.2025
Bluetooth - это технология, созданная чтобы заменить кабельные соединения. Обычно ее используют для связи небольших устройств: мобильных телефонов, ноутбуков, наушников и т. д. Работает она на частоте. . .
Руководство по структурам данных Python
AI_Generated 08.07.2025
Я отчетливо помню свои первые серьезные проекты на Python - я писал код, он работал, заказчики были относительно довольны. Но однажды мой наставник, взглянув на мою реализацию поиска по огромному. . .
Тестирование энергоэффективности и скорости вычислений видеокарт в BOINC проектах
Programma_Boinc 08.07.2025
Тестирование энергоэффективности и скорости вычислений видеокарт в BOINC проектах Опубликовано: 07. 07. 2025 Рубрика: Uncategorized Автор: AlexA Статья размещается на сайте с разрешения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru