Я что-то сломал в своем winecfg. Таким образом, он больше не будет запускать приложения для Windows в Wine. (Я не могу позволить себе mv .wine и переустановить).
Как мне переопределить dll с помощью командной строки. Я случайно отключил rpcrt4.dll и хочу отменить его.
При запуске winecfg или любого приложения Windows, такого как MS Word, Wine печатает это сообщение об ошибке:
err:module:import_dll Library rpcrt4.dll (which is needed by L"C:\\windows\\system32\\explorer.exe") not found
Во-первых, попробуйте использовать winetricks
в командной строке, чтобы вернуть только ваши настройки winecfg
dll к значениям по умолчанию:
winetricks alldlls=default
Если , это не решает проблема, вы можете использовать WINEDLLOVERRIDES; это переменная окружения, которую можно использовать с wine
для указания переопределений dll, которые вы хотите (или не требуете). Как указано на man-странице , WINEDLLOVERRIDES
Определяет тип переопределения и порядок загрузки dll, используемых в процессе загрузки для любой dll. В настоящее время существует два типа библиотек, которые могут быть загружены в адресное пространство процесса: собственные библиотеки Windows (собственные), внутренние библиотеки DLL (встроенные). Тип может быть сокращен первой буквой типа (n, b). Библиотека также может быть отключена (''). Каждая последовательность заказов должна быть разделена запятыми.
blockquote>Вы можете либо экспортировать переменную среды, либо использовать
env
и указать переменную, которая будет использоваться с командой wine (если вы не укажете WINEPREFIX, она будет использовать значение по умолчанию):env WINEDLLOVERRIDES="rpcrt4=b,n" wine exe_to_run
Это будет указывать, что встроенная версия должна быть опробована, а затем собственная версия. Если вместо этого вы используете
"rpcrt4="
, то эта DLL останется отключенной, аwine
не будет работать вообще.Если вы хотите экспортировать значение в оболочку для этого сеанса, вы можете запустить
export WINEDLLOVERRIDES="rpcrt4=b,n"
Это не повлияет на настройки в
winecfg
, и они останутся такими же. Эта переменная окружения и многие другие полезные, доступные сwine
, являются только временными и просто влияют на оболочку, в которой они используются, либо путем экспорта переменной, либо каждый раз используяenv
для определения состояния переменной и затем запускаwine
с этой переменной, когда она запускает вашу программу. Вы также можете указать переменные окружения в скрипте bash, который запустил ваши программыwine
.Дополнительную информацию см. В
man wine
, онлайн-руководствах по Ubuntu и FAQ по полезному вину .