Migrar do .NET Framework
Migrar para .NET 6.0
O cTrader Windows migrou do .NET Framework para o .NET 6.0 na versão 4.2. Isto resultou num número significativo de alterações na interface do utilizador e na forma como os cBots e indicadores são compilados e construídos.
Alterações principais
Antes da migração, o cTrader utilizava o .NET Framework 4.0 (e a versão 4 do C#). Todos os algos eram executados dentro do processo principal do cTrader Windows.
Após a migração, o cTrader utiliza agora processos secundários separados para indicadores e cBots. Também utiliza um pacote NuGet dedicado para construir ficheiros .algo.
Dito isto, as novas versões do cTrader são compatíveis com o código escrito antes da migração. À exceção de alguns casos, pode utilizar livremente indicadores e cBots que foram construídos em versões mais antigas do cTrader.
Nota
Alguns nomes de parâmetros e métodos foram alterados durante a migração. Ao construir os seus cBots ou indicadores antigos em versões mais recentes do cTrader, poderá receber erros ou avisos de compilação devido a isto. Consulte a biblioteca de referência para conhecer os novos nomes de métodos ou parâmetros e as sobrecargas de métodos.
Como migrar para .NET 6.0
Para migrar do .NET Framework para o .NET 6.0, reconstrua os seus indicadores e cBots no cTrader Windows 4.2 ou mais recente. Durante a reconstrução, o cTrader alterará automaticamente a estrutura do projeto .NET para o novo estilo SDK.
Após a reconstrução, altere a framework de destino do seu indicador ou cBot para .NET 6.0 através do menu suspenso Target framework.

Teste o seu indicador ou cBot após a reconstrução.
Nota
Se o seu indicador ou cBot utilizar os direitos de acesso File, Registry ou Internet, altere-os para FullAccess.
Na versão 4.2, os cBots e indicadores que utilizam múltiplas threads não podem chamar quaisquer membros da API. Isto pode ser resolvido utilizando o método BeginInvokeOnMainThread para chamar um método ou membro da API. Caso contrário, o seu código lançará um erro.
Como a API do cTrader Algo não é thread safe, deve utilizar o método BeginInvokeOnMainThread sempre que chamar ou aceder a um membro da API.