Este parece ser um problema conhecido relatado em
Instâncias / conexões de SQLite ilimitadas que contribuem para as falhas do OOM # 22650 .
O problema foi aparentemente resolvido no Visual Studio 2017 versão 15.5,
e a correção pode ter sido transferida para 15.4.
A atualização do Visual Studio 2017 para a versão mais recente deve resolver o problema
(se é mesmo o mesmo).
Como isso não resolveu o problema, vale a pena notar que o
O erro OutOfMemoryException não significa falta de memória, mas sim
a impossibilidade de alocando memória.
Eu explicarei abaixo porque estes não são os mesmos.
Como o Visual Studio é um programa de 32 bits, seu espaço de memória é limitado a 4 GB.
A partir disso, ele pode "usar" apenas cerca de 2 GB para seus dados, o restante usado por
Software Windows e para programas.
A memória física recebe endereços virtuais neste espaço, de modo que
alguns endereços já estão alocados e outros não.
Não há mecanismo de coleta de lixo possível, de modo que um endereço,
uma vez alocado, fica alocado.
Imagine, por exemplo, que dos 2 GB disponíveis, 100 MB
são alocados e um deseja alocar 1 GB adicional.
Logicamente, a memória disponível é muito mais que suficiente.
No entanto, se os 100 MB forem alocados no meio do espaço de 2 GB,
já não é possível atribuir 1 GB de contíguo memória.
Nesse caso, a condição OutOfMemoryException será aumentada,
embora pareça impossível.
Este caso pode surgir quando a memória é alocada e liberada de tal maneira
que os fragmentos de memória alocados estão espalhados pelos
espaço de endereçamento e só deixar "buracos" que não são suficientes para um grande
alocação.
Portanto, existem apenas duas possibilidades:
Um bug no Visual Studio, como por exemplo, ao tentar aumentar
o comprimento de uma instância do StringBuilder
classe além do que é
especificado por sua corrente MaxCapacity
propriedade, também fará com que o
Condição OutOfMemoryException.
Muitas alocações são feitas, de modo que, mesmo liberadas, a memória é
muito fragmentado.
Seu caso parece se encaixar melhor no segundo caso, mas suas opções para um
solução aqui são bastante limitadas.
Uma versão de 64 bits do Visual Studio resolveria o problema ampliando
o espaço de endereço, mas isso não está no Roteiro do Visual Studio .
Sua outra opção é reduzir a alocação de memória o máximo possível.
Você pode reduzir o número de complementos do Visual Studio ou tentar
Divida essa enorme solução VS em outras menores.
Ou você pode fechar e reiniciar o Visual Studio, uma vez que algumas alocações de memória
são feitos em paralelo por threads do Visual Studio, então existe um
elemento envolvido.