Arquivo

Archive for julho \07\UTC 2013

Criando um .sln a partir de um projeto compilado em .NET (Dicas)

07/07/2013 1 comentário

Peguei um projeto para fazer como freelance que parecia bem simples e acabou se tornando mais complicado que o esperado.
A dificuldade é que o cliente tem um projeto desenvolvido em .net (framework 2.0) e só tem o projeto compilado e backups do código fonte. E só descobri isso depois de aceitar o projeto. Desafios são sempre legais, mas quando você está fazendo um “freela”, cada minuto a mais de trabalho é dinheiro perdido. Então resolvi postar minhas dificuldades de como remontar a solução no Visual Studio 2012.

Acabei encontrando alguns arquivos .sln com a solução compilada. Isso já foi bom pois tinha referência a todos os arquivos .aspx relacionados. Já os arquivos .cs estavam em uma pasta separada.

Criei uma Web Application vazia e comecei a referenciar os arquivos.

A primeira grande dica é que existiam arquivos .cs (Classes). E para que essas classes funcionem corretamente é necessário configurá-las corretamente. Clique com o botão direito na classe (você pode selecionar várias) e depois “Properties”. Na janela, as propriedades abaixo devem ser configuradas:

  • Build Action: Compile
  • Copy to Output Directory: Do not Copy

convert_to_WebApp3

Depois de passado esse desafio, tentei compilar o projeto e passei a receber inúmeros erros aonde o code-behind não encontrava os objetos que estavam nos arquivos .aspx tal como Literal, Grids, etc. Depois de muito pesquisar percebi que não haviam os arquivos .aspx.designer.cs que fazem essa “ponte” entre o .aspx e o .cs. Para gerar esses arquivos, selecione o arquivo .aspx (você pode selecionar vários ao mesmo tempo) e depois de clicar com o botão direito, selecione “Convert do Web Application”. A solução foi bem simples mas demorei algumas horas para descobrir. Segue o link que me salvou: http://www.undermyhat.org/blog/2009/07/tip-regenerate-aspx-designer-cs-files-when-corrupted/

convert_to_WebApp1 convert_to_WebApp2

O terceiro desafio foi que passei a receber o erro:
“The name ‘Resources’ does not exist in the current context”

O Resource são arquivos de configuração aonde você pode configurar várias chaves/valores e utilizar no seu sistema. E você pode criar arquivos diferentes para cada linguagem. Depois de buscar no backup do projeto, encontrei alguns arquivos .resx e inseri no projeto. Mas nada aconteceu e os erros permaneceram.
Então descobri que para funcionar é necessário criar uma pasta ” App_GlobalResources” e/ou ” App_LocalResources” e colocar seus arquivos dentro dessas pastas.
Mais explicações aqui: http://msdn.microsoft.com/en-us/library/ms227427.aspx.

Até que enfim o build funcionou!!! Valeu o trabalho no final de semana!
Abraços

 

Anúncios