Como recuperar meu código fonte?


3

após uma falha no sistema, um dos meus arquivos .cs é perdido.
O tamanho do arquivo é 18KB,
quando tentei abri-lo no VS2010, o vs2010 auto o abre no bloco de notas, mas o conteúdo está vazio.
Tentei abri-lo no NotePad ++, o conteúdo se transforma em grupos de blocos pretos com a palavra "NULL".
Tentei "salvar como" no UTF8, mas o arquivo está vazio da mesma forma.

Como recuperar esse arquivo .cs perdido? :(


Você executou um CHKDSK /Fna unidade (exigirá uma reinicialização se seus dados estiverem na unidade do sistema)? Se isso não ajudar, os dados provavelmente estão perdidos - você está usando um VCS, está? ;)
Lucero


você possui o arquivo exe do programa? O .NET Reflector v6 fornece suporte para os assemblies do .NET Framework 4.0. Faça o download

@Uma ótima idéia com Refletor. Mas agora é uma ferramenta de pagamento, então recomendo usar o ILSpy - wiki.sharpdevelop.net/ILSpy.ashx

4
O Visual Studio retém algumas informações de recuperação automática. Geralmente está dentro C:\Users\USERNAME\Documents\Visual Studio 2010\Backup Files.
ta.speot.is

Respostas:


4

Tente usar qualquer ferramenta de recuperação (não é importante que seja um arquivo cs).

e você precisa usar o controle de subversão externo na próxima vez.

Estou usando o xp-dev.com . Tem plano gratuito. Tente pesquisar no Google e você descobrirá mais serviços como este.

Edição: Mencionou sobre o código descompilar - é uma boa idéia. Tente usar o ILSpy - ferramenta de código aberto.


1

Você já o compilou para ter um arquivo .dll / .exe com a classe compilada? Nesse caso, você pode usar um descompilador como dotPeek do JetBrains ou Reflector do RedGate para descompilar o arquivo e recuperar o código .cs.

Você ficará surpreso com a preservação do código fonte. Às vezes, acho que o código compilado-> descompilado é mais bonito do que o código era antes da compilação ...

Lembre-se de usar o controle de versão e os backups, parece que há algo errado com seu disco.


Código de compilação / decompile como uma operação arrumado, muito bom
rico Homolka

1

Eu tive exatamente o mesmo problema ontem :)

Além disso, minha unidade foi criptografada e, quando abri o arquivo com o Notepad ++, estava tudo preenchido com NULLs. O problema é que, se sua unidade estiver criptografada, não há como recuperar os dados (além de ler o código IL e convertê-lo novamente em C # a partir da biblioteca compilada). Mas, felizmente, tudo que eu precisava fazer era conferir a versão original do git hub.

Espero que você tenha usado o controle de origem. Se não, bem, isso seria uma boa lição.


1
Por que alguém postaria algo assim se pudesse svn revert(ou equivalente) e isso restauraria o arquivo?
Daniel Beck

@DanielBeck a maneira mais fácil de não entrar em tais situações é cometer com frequência. Minha sugestão foi corrigir o problema raiz, em vez de corrigir uma única falha. Se não é possível atualizar o código do repositório, é um problema muito maior (dado que é o código de produção).
Oleksii

@oleksii, hmm, eu finalmente recuperar cerca de 90% do meu código de arquivo decompiling DLL, e eu aprendi minha lição, agora eu tentei SVN meu projeto para um servidor, obrigado ...
Albert Gao

1

Isso ocorre porque a exclusão da operação ocorreu no arquivo e o código ou dados em seu arquivo são interrompidos no estágio intermediário. Também não está comprometido com a fonte segura ou retida. Tente obter a versão mais antiga e você precisará escrever o código novamente.

Às vezes, isso acontece mesmo que seu disco rígido não esteja travado


0

você tem o seu arquivo exe do programa? O .NET Reflector v6 fornece suporte para assemblies do .NET Framework 4.0. Faça o download aqui .


0

Aqui estão alguns passos que você pode executar

  • tente recuperar os arquivos "fisicamente" através da ferramenta gratuita Recuva .

  • tente recuperá-los da sua pasta de arquivos temporários no diretório de usuários e arquivos do Windows

  • Tente olhar dentro do Cache de Montagem (Global) e desmonte seu aplicativo para C # via ILSpy

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.