Instalação
Tradução da página original em inglês do OmsiLaunch 0.1.0-beta3. A página em inglês é a referência normativa: se as duas divergirem, valem a página em inglês e o código.
Esta página explica o que o OmsiLaunch 0.1.0-beta3 exige, qual build do OMSI ele suporta, como o pacote de release é instalado em uma raiz de instalação do OMSI e como verificar a instalação com /version e /plan antes de iniciar uma sessão. O conteúdo do pacote é especificado em empacotamento; a primeira inicialização é descrita em primeira sessão.
Requisitos#
| Requisito | Detalhe | Falha quando ausente |
|---|---|---|
| Windows 10 ou posterior, 64 bits | O controlador verifica Environment.OSVersion.Version.Major >= 10, um sistema operacional x64 e um processo x64. | Plano não apto para execução com OL_E_UNSUPPORTED_OPERATING_SYSTEM (ou OL_E_UNSUPPORTED_OS_ARCHITECTURE), saída 1/3. |
| .NET 6 Desktop Runtime, x64 | OmsiLaunch.Controller.runtimeconfig.json exige Microsoft.NETCore.App 6.0 e Microsoft.WindowsDesktop.App 6.0 (o Windows Forms é usado pelo indicador na bandeja). Os shims o localizam com nethost.dll. | O OmsiLaunch.exe sai com o código de shim 102..106 antes de qualquer saída; o OmsiLaunchW.exe mostra OmsiLaunch could not start the .NET host (code N). |
| .NET 6 Runtime, x86 | plugins\OmsiLaunch.Plugin.runtimeconfig.json exige Microsoft.NETCore.App 6.0 para x86, porque o plugin é executado dentro do Omsi.exe de 32 bits. O pacote .NET 6 Desktop Runtime x86 também atende a esse requisito. | O plugin não inicia dentro do OMSI; a sessão não chega a Running (OL_E_PLUGIN_NOT_LOADED / OL_E_STARTUP_TIMEOUT), saída 1, arquivos restaurados. |
| Build do OMSI 2 suportado | Omsi.exe com SHA-256 692EBFBF2CD32FAB05A8B934E52C2BE14594E939882F3DBF2BA4E2B66CCC6243 (8,503,440 bytes), perfil Omsi23004_692EBFBF, validado em runtime. O executável Steam LAA 7DAB063D1F62E73B3A2C7A6AC1921D7EDF5E5DB0FBC731481D117EEC8DE7D759 é aceito, mas seu status de validação é pending_beta_field_validation. O hash é verificado novamente a cada plano e a cada início. | OL_E_UNSUPPORTED_BUILD; plano não apto para execução, saída 1. Veja compatibilidade. |
| Raiz da instalação gravável | A transação grava .omsilaunch\, overlays em GUI\, Texture\ e options.cfg e os restaura; a raiz precisa ser gravável pelo usuário atual (evite Program Files sem as permissões adequadas). | OL_E_INSTALLATION_NOT_WRITABLE, saída 1. |
| Um usuário, um proprietário por instalação | O lease da instalação Local\OmsiLaunch.Installation.<sha256(root)> e o pipe de controle são por sessão de logon. | OL_E_INSTALLATION_BUSY / OL_E_SESSION_ALREADY_ACTIVE, saída 7. |
Os dois runtimes são downloads separados da Microsoft; instale o Desktop Runtime x64 e o Runtime x86 (ou o Desktop Runtime x86) do .NET 6. Nenhum outro componente é necessário. Nenhum dado sai da máquina.
Confirme o build do OMSI#
Substitua <OMSI_PATH> pelo seu diretório do OMSI 2 (por exemplo C:\OMSI 2).
Get-FileHash '<OMSI_PATH>\Omsi.exe' -Algorithm SHA256
(Get-Item '<OMSI_PATH>\Omsi.exe').LengthO hash precisa ser um dos dois listados acima. Depois da instalação, OmsiLaunch.exe profiles imprime a mesma lista com o respectivo status de validação.
Instale o pacote#
- Baixe
OmsiLaunch-0.1.0-beta3.zipeOmsiLaunch-0.1.0-beta3.zip.sha256; verifique o checksum (Get-FileHashprecisa ser igual ao valor do arquivo.sha256). - Extraia o arquivo compactado diretamente na raiz da instalação do OMSI (a pasta que contém
Omsi.exe). O arquivo compactado está organizado para essa raiz:OmsiLaunch.exe,OmsiLaunchW.exe,nethost.dll,OmsiLaunch.Controller.dlle os demais assemblies do controladorOmsiLaunch.*.dll,YamlDotNet.dll,release-manifest.json,LICENSE,THIRD-PARTY-NOTICES.mdna raiz;- o conjunto de arquivos do plugin permanente
plugins\OmsiLaunch.*(9 arquivos) ao lado dos seus plugins existentes, que nunca são tocados; .omsilaunch\com os recursos de splash, a documentação offline e os exemplos.
- Mantenha
release-manifest.jsonao lado deOmsiLaunch.exe. É ele que permite que cada início verifique os arquivos do plugin instalados por SHA-256 (plugin.integrity.reference = manifest); sem ele, apenas a presença e a consistência interna são verificadas (plugin.integrity.reference = self). - Não mova nem renomeie nada em
plugins\OmsiLaunch.*e não coloque binários do plugin em.omsilaunch\.
A atualização é a mesma operação: extraia o novo pacote sobre os arquivos antigos enquanto nenhuma sessão estiver em execução e nenhuma recuperação estiver pendente (OmsiLaunch.exe /recovery-status). Os hashes do plugin e o manifesto precisam sempre vir do mesmo pacote (caso contrário, OL_E_PERMANENT_PLUGIN_HASH_MISMATCH).
Verifique#
Execute a partir da raiz do OMSI (o argumento de instalação tem como padrão o diretório que contém OmsiLaunch.exe):
OmsiLaunch.exe /versionEsperado: "version": "0.1.0-beta3", "protocol_version": "0.1", "supported_family": "OMSI_2_3_004_COMMON"; saída 0. A saída 102..106 significa que o runtime .NET 6 x64 está ausente ou que o pacote está incompleto.
OmsiLaunch.exe profiles
OmsiLaunch.exe /list:MapsEsperado: os hashes suportados e, em seguida, os mapas encontrados nesta instalação; saída 0.
OmsiLaunch.exe /new /map:maps\Grundorf\global.cfg /entrypoint-index:1 /planEsperado: Plan: READY profile=Omsi23004_692EBFBF e saída 0 (use qualquer identidade de mapa de /list:Maps; o índice do ponto de entrada precisa ser um índice apresentado daquele mapa, veja /list:Entrypoints /map:<identity>). Com --json, o plano lista TouchedFiles (os overlays do splash), PlannedMutations, RequiredCapabilities (todas STATICALLY_VALIDATED), Diagnostics (incluindo plugin.integrity.reference) e IsRunnable. Plan: NOT RUNNABLE com saída 1 indica o motivo em Diagnostics (OL_E_UNSUPPORTED_BUILD, OL_E_MAP_NOT_FOUND, OL_E_ENTRYPOINT_REQUIRED, OL_E_RUNTIME_ARTIFACT_MISSING, ...). O planejamento nunca inicia o OMSI e nunca grava na instalação.
Onde ficam as coisas depois#
| Caminho | Conteúdo |
|---|---|
<root>\.omsilaunch\diagnostics\<sessionId>-host.log | Trace do host de cada sessão (as 50 sessões mais recentes são mantidas) |
<root>\.omsilaunch\diagnostics\tray-host.log | Log do indicador na bandeja |
<root>\.omsilaunch\journal.json, backup\<sessionId>\ | Presentes somente enquanto uma transação está pendente; veja transações e recuperação |
<root>\.omsilaunch\session-profiles\<id>\profile.yaml | Seus perfis de sessão predefinidos; veja perfis de sessão |
<root>\.omsilaunch\assets\splash\ | Recursos do splash gerenciado |
<root>\.omsilaunch\docs\ | Esta documentação, offline (comece por README.md; a referência da CLI é reference\cli.md) |
<root>\.omsilaunch\examples\ | Exemplo de LaunchSpec e de perfil de sessão |
Desinstalar#
Pare qualquer sessão, execute OmsiLaunch.exe /recovery-status (e /recover se houver pendência) e, em seguida, exclua os arquivos do produto na raiz, plugins\OmsiLaunch.* e .omsilaunch\. Detalhes em empacotamento.