Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.57/56: Рейтинг темы: голосов - 56, средняя оценка - 4.57
41 / 37 / 9
Регистрация: 01.02.2014
Сообщений: 825

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

30.09.2019, 13:58. Показов 12029. Ответов 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
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,569
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
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,569
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
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,569
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
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,569
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
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,569
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
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,569
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
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,569
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
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,569
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
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,569
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
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение Это мой обзор планшета X220 с точки зрения школьника. Недавно я решила попытаться уменьшить свой. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru