Запуск приложения .Net 4.0 с Wine

17

Я пытаюсь запустить простую программу в Wine под Ubuntu 14.04 LTS, однако он жалуется, что

fixme:mscoree:parse_supported_runtime sku=L".NETFramework,Version=v4.0" not implemented
fixme:mscoree:parse_probing privatePath=L"assemblies" not implemented
The entry point method could not be loaded

Попытка установить .Net 4.0 вручную приводит к ошибке в установщике, говоря, что .Net 4.0 уже установлен.

Бег winetricks forcemono

------------------------------------------------------
You are using a 64-bit WINEPREFIX. If you encounter problems, please retest in a
clean 32-bit WINEPREFIX before reporting a bug.
------------------------------------------------------
Executing w_do_call forcemono
Executing load_forcemono
Using native override for following DLLs: mscoree
Executing winetricks_early_wine regedit C:\windows\Temp\_forcemono\override-dll.reg
Using override for following DLLs: mscorsvw.exe
Executing winetricks_early_wine regedit C:\windows\Temp\_forcemono\override-dll.reg

Тогда попытка запустить то же приложение снова все равно не удастся

err:module:import_dll Library mscoree.dll (which is needed by L"Z:\\home\\<user>\\tmp\\saveedit_r237\\Gibbed.Borderlands2.SaveEdit.exe") not found
err:module:LdrInitializeThunk Main exe initialization for L"Z:\\home\\<user>\\tmp\\saveedit_r237\\Gibbed.Borderlands2.SaveEdit.exe" failed, status c0000135

Я попробовал Wine 1.6 и 1.7.30 и оба провалились. Реально ли реализован .Net 4.0? Или частично реализован? Есть ли способ заставить работать это приложение .Net 4.0?

Обновить

Winetricks жалуется, что dotnet40не может быть установлен в 64-битной системе. Итак, как мне его установить?

Яник Рошон
источник
Не могли бы вы добавить подробности о том, для какой программы и для какой версии Windows она предназначена?
Уилф

Ответы:

27

Перво-наперво, обратите внимание на это очень заметное предупреждение:

------------------------------------------------------
You are using a 64-bit WINEPREFIX. If you encounter problems, please retest in a
clean 32-bit WINEPREFIX before reporting a bug.
------------------------------------------------------

Это указывает на то, что вам нужно создать 32-битный Wineprefix , так как Wine лучше работает с 32-битными программами - это можно сделать, просто запустив Wine и указав , какую архитектуру использовать, перед запуском его команд (я думаю, это также можно сделать, удалив Wine x86_64 и установив Wine i386 / i686 - в любом случае, оставьте терминал открытым для других команд wine после выполнения этого) :

export WINEARCH="win32"

Это устанавливает переменные среды, которые Wine читает перед запуском (см. man wine).

Также было бы неплохо заставить его создать свой собственный WINEPREFIX (где хранится виртуальный диск Wine). По умолчанию это так ~/.wine, но вы можете создать отдельные для каждой архитектуры и программы - так, чтобы создать WINEPREFIX в каталоге /home/USERNAME/.wine-PROGRAM-NAME/:

export WINEPREFIX=~/.wine-PROGRAM-NAME/

Каталог не должен существовать (в идеале он не должен существовать, поэтому материал не должен быть перезаписан), но родительские каталоги, вероятно, должны - у вас также должно быть разрешение на чтение и запись, а я нет я думаю, что wineprefix может быть на диске FAT / NTFS по техническим причинам (он не будет работать) .

Итак, чтобы установить 32-битный винный префикс для программы:

export WINEARCH="win32"
export WINEPREFIX=~/.wine-PROGRAM-NAME/
wineboot -u

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

Затем вы должны получить окно, подобное этому:

Wineprefix обновляется ....

Тогда вы готовы к работе. Теперь вы можете установить NET 4.0 с помощью winetricks(вы можете сначала получить последнюю версию здесь ):

winetricks dotnet40

Это должно быть в терминале после export WINEPREFIX=...команды или путем размещения его непосредственно перед командой wine, как это так (полезно для программ запуска приложений, использующих одну командную строку) :

env WINEPREFIX=~/.wine-PROGRAM-NAME/" winetricks dotnet40

Вы также можете использовать , winetricksчтобы установить некоторые другие вещи он может понадобиться - например , шрифты (используя опции corefonts, lucida, tahoma). Чтобы перечислить параметры winetricks, используйте winetricks list-all.

Затем вы можете установить программу, используя wine "~/Downloads/PATH/TO/INSTALLER.exe". Еще раз (скопируйте файл, затем «Вставьте имена файлов» в терминал, чтобы он выглядел как '/home/wilf/Desktop/name spaces/installer.exe'нет file:///home/wilf/Desktop/name spaces/installer.exe') .

Вы должны убедиться, что WINEPREFIX был экспортирован перед запуском этой команды (особенно если вы закрыли терминал) или в той же строке. После того, как он заработал (или не заработал), вы можете сделать отчет о том, насколько хорошо он работает здесь (включая то, что вы сделали и т. Д., Чтобы вы могли помочь другим людям). Если у вас есть проблемы, и в выходных данных появляются заметные ошибки, вы можете сообщить об ошибке .

После установки программа запуска приложения должна появиться в Dash / Menu, а иногда и на рабочем столе. В противном случае, чтобы в будущем запустить приложение, вам может понадобиться запустить приложение с помощью export WINEPREFIX=...и и wine ....(или env WINEPREFIX=... wine .....) снова, если только вы не создадите панель запуска (прокомментируйте ниже или где-нибудь, если вам нужно знать, как это сделать ....)


Больше информации, устранение неполадок и т. Д.

Как мне установить winetricks?

Вы можете получить версию из репозиториев Ubuntu, используя эту команду (или устанавливая Winetricks из Центра программного обеспечения):

sudo apt-get install winetricks

Затем вы можете использовать, winetricks OPTIONSчтобы делать вещи.

Для получения последней версии вы можете использовать эти команды для загрузки и использования последней версии:

wget  https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
chmod +x winetricks 

Обратите внимание, что вам придется запускать его как ./winetricks <OPTIONS>, если только он не находится в каталоге оболочки $PATH.

Я не хочу использовать терминал, что я могу сделать?

Приложение, которое вы хотите использовать, может быть запущено под PlayOnLinux (это должно быть, если вы можете найти его здесь ) - это почти весь графический интерфейс и автоматически выполняет большинство шагов за вас.

В противном случае, вы можете использовать терминал , чтобы сделать это очень легко (вы , как правило, гораздо больше контроля , чем если программа GUI делает это), просто будьте осторожны , что вы положили в (особенно , если она включает в себя команду sudo, rmи т.д.). Постарайтесь сначала понять, что происходит с каждой командой.

Кроме того, некоторые из этих шагов могут быть выполнены другими способами - winecfgи с winetricksоткрытым графическим интерфейсом, с помощью которого вы можете сделать некоторые шаги, но опять же, то, что вы можете сделать, ограничено.

Как мне установить последнюю версию Wine?

Более новые версии Wine более современны, поэтому могут лучше запускать программу (если не существует регрессии, которая на нее влияет). Для установки текущей последней версии (Wine1.7) вы можете использовать официальный Wine PPA :

sudo apt-add-repository ppa:ubuntu-wine/ppa
sudo apt-get update
sudo apt-get install wine1.7

Если он не может найти пакет wine1.7, попробуйте снова запустить команду установки, но wineвместоwine1.7

Для установки и настройки Wine в целом, вы также можете попробовать этот вопрос .

Программа, которую я хочу использовать, предназначена для более новой версии Windows, что я могу сделать?

Wine по умолчанию реплицирует Windows XP, которую некоторые программы не поддерживают, так как это EOL (что, я полагаю, пригодится, поскольку вы, вероятно, можете запускать программы для WinXP под Wine под Linux, и вы можете «разогнать WinXP с орбиты» :)

В любом случае, сначала откройте окно конфигурации Wine:

export WINEPREFIX=~/.wine-PROGRAM-NAME/
winecfg

Где ~/.wine-PROGRAM-NAME/находится WINEPREFIX, который вы создали ранее.

И выберите версию Windows для репликации в нижней части вкладки «Приложения». Затем попробуйте установить приложение еще раз.

ОКНА ВИРУСЫ ПОД ВИНОМ?!?!

Вполне возможно . Не устанавливайте случайное программное обеспечение в Интернете, убедитесь, что оно с доверенного сайта.

Уилф
источник
2
Так как я не очень часто использую Wine, я решил, что установлю WINEARCHв своем .bashrcскрипте напрямую, затем ~/.wineполностью стёр и продолжил winetricks dotnet40. Это работает сейчас. Благодарность!
Яник Рошон