<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Code Behind</title>
	<atom:link href="http://codebehind.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://codebehind.wordpress.com</link>
	<description>Visual Studio .Net C# SQL Server</description>
	<lastBuildDate>Tue, 14 Aug 2007 18:09:46 +0000</lastBuildDate>
	<language>pt-br</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='codebehind.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Code Behind</title>
		<link>http://codebehind.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://codebehind.wordpress.com/osd.xml" title="Code Behind" />
	<atom:link rel='hub' href='http://codebehind.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Cruise Control.Net e projetos C/C++</title>
		<link>http://codebehind.wordpress.com/2007/08/13/cruise-controlnet-e-projetos-cc/</link>
		<comments>http://codebehind.wordpress.com/2007/08/13/cruise-controlnet-e-projetos-cc/#comments</comments>
		<pubDate>Mon, 13 Aug 2007 12:58:11 +0000</pubDate>
		<dc:creator>Thiago</dc:creator>
				<category><![CDATA[Cruise Control]]></category>

		<guid isPermaLink="false">http://codebehind.wordpress.com/2007/08/13/cruise-controlnet-e-projetos-cc/</guid>
		<description><![CDATA[Nos últimos meses, tenho utilizado bastante o Cruise Control para automatizar a compilação dos projetos existentes na empresa onde eu trabalho. Enquanto estava só compilando projetos .Net tudo estava lindo e maravilhoso, mas quando comecei a ter que integrar a compilação de projetos C/C++ a coisa ficou feia. Como os scripts nant que compilam esses [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codebehind.wordpress.com&amp;blog=421943&amp;post=7&amp;subd=codebehind&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>
Nos últimos meses, tenho utilizado bastante o Cruise Control para automatizar a compilação dos projetos existentes na empresa onde eu trabalho. Enquanto estava só compilando projetos .Net tudo estava lindo e<br />
maravilhoso, mas quando comecei a ter que integrar a compilação de projetos C/C++ a coisa ficou feia.
</p>
<p>
Como os scripts nant que compilam esses projetos, utilizam as variáveis de ambiente do Visual Studio,<br />
definidas no arquivo &#8220;vcvarsall.bat&#8221;. Quando a compilação era disparada de dentro do Cruise Control.Net ocorriam erros,<br />
devido não ser possível encontrar as bentidas variáveis de ambiente.
</p>
<p>
O problema é que eu não consegui achar um meio de fazer com que o serviço do Cruise Control tivesse acesso as variáveis de ambientes<br />
definidas pelo arquivo batch do Visual Studio.
</p>
<p>
O jeito foi seguir o aconselhado no <a href="http://confluence.public.thoughtworks.org/display/CCNET/The+Server+Service+Application">site</a> do Cruise Control.Net e seguir a vida. Até que esta semana conversando com o <a href="http://www.caloni.com.br/blog">Wanderley</a>, ele deu a idéia de utilizar o <a href="http://www.driverentry.com.br/blog/2007/02/prog2svc-servio-sem-trabalho.html">Prog2Svc</a> feito pelo <a href="http://www.driverentry.com.br">Fernando</a> para fazer com que o serviço do Cruise Control tivesse acesso as variáveis de ambiente.
</p>
<p>
Dessa forma o arquivo batch que inicializa o serviço do Cruise Control ficou dessa maneira:</p>
<pre style="font-size:9px;">
call "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\vcvarsall.bat" x86
cd "C:\\Program Files\\CruiseControl.NET\\server"
"C:\\Program Files\\CruiseControl.NET\\server\\CCNET.exe" -remoting:on
</pre>
</p>
<p>
E a linha de comando para fazer com que o Prog2Svc registre o arquivo batch como serviço foi o seguinte:</p>
<pre style="font-size:9px;">
c:\\windows\\system32\\Prog2Svc.exe -add C:\\windows\\system32\\CCNetServer.Bat
</pre>
</p>
<p>
O único problema é que foi necessário alterar o usuário que roda o serviço criado pelo Prog2Svc de SYSTEM<br />
para um usuário local da máquina de compilação, por ocorrer um problema de compilação nos projetos C/C++ &#8220;Program Database Mismatch&#8221;<br />
que é descrito <a href="http://confluence.public.thoughtworks.org/display/CCNET/The+Server+Service+Application">aqui</a>.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/codebehind.wordpress.com/7/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/codebehind.wordpress.com/7/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/codebehind.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/codebehind.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/codebehind.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/codebehind.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/codebehind.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/codebehind.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/codebehind.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/codebehind.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/codebehind.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/codebehind.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/codebehind.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/codebehind.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/codebehind.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/codebehind.wordpress.com/7/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codebehind.wordpress.com&amp;blog=421943&amp;post=7&amp;subd=codebehind&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://codebehind.wordpress.com/2007/08/13/cruise-controlnet-e-projetos-cc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ae2788af9191c2991b81e24fe350b030?s=96&#38;d=identicon" medium="image">
			<media:title type="html">Thiago</media:title>
		</media:content>
	</item>
		<item>
		<title>Depurando aplicações utilizando o DbgClr</title>
		<link>http://codebehind.wordpress.com/2007/07/23/depurando-aplicacoes-utilizando-o-dbgclr/</link>
		<comments>http://codebehind.wordpress.com/2007/07/23/depurando-aplicacoes-utilizando-o-dbgclr/#comments</comments>
		<pubDate>Mon, 23 Jul 2007 14:47:26 +0000</pubDate>
		<dc:creator>Thiago</dc:creator>
				<category><![CDATA[Depuração]]></category>

		<guid isPermaLink="false">http://codebehind.wordpress.com/2007/07/23/depurando-aplicacoes-utilizando-o-dbgclr/</guid>
		<description><![CDATA[Todos nós desenvolvedores já passamos por aventuras quando o asunto é depurar aplicações web, em servidores onde não se pode instalar nada além do que já está instalado. Agora vamos lá, quem é o discipúlo do Ninja Gaiden que consegue descobrir por que diabos uma aplicação está derrubando seu IIS a cada 5 minutos sem [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codebehind.wordpress.com&amp;blog=421943&amp;post=4&amp;subd=codebehind&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p> Todos nós desenvolvedores já passamos por aventuras quando o asunto é depurar aplicações web, em servidores onde não se pode instalar nada além do<br />
que já está instalado.</p>
<p>Agora vamos lá, quem é o discipúlo do Ninja Gaiden que consegue descobrir por que diabos uma aplicação está derrubando seu IIS a cada 5 minutos<br />
sem gerar um misero arquivo de log. Numa situação dessas ter o Visual Studio instalado e atachado no processo do IIS seria o cenário ideal, mas devido<br />
as restrições acima mencionadas não é possível.</p>
<p>Mas não desanime, existe uma ferramenta que pode te ajudar e muito nessas situações é o DbgCLR. Essa ferramenta está localizada no diretório,<br />
<em>%ProgramFiles%\Microsoft Visual Studio 8\SDK\v2.0\GuiDebug\DbgClr.exe</em>. Essa ferramenta é um Visual Studio bem mirradinho, mas que dá conta do<br />
recado quando o que você precisa é efetuar uma depuração urgente.</p>
<p><a href="http://codebehind.files.wordpress.com/2007/07/dbgclr800.png" title="Interface do DbgClr">Interface do DbgClr</a></p>
<p>O DbgClr pode ser copiado para o computador onde sua aplicação está instalada e ai é só executar. A única exigência, é que você tenha os fontes da<br />
aplicação e os simbolos referentes a versão da aplicação que está rodando no computador a ser depurado. Com isso em mãos sua experiência de depuração<br />
será bem mais tranquila.</p>
<p>Legal, mas como eu utilizo essa bomba?</p>
<p>Coloque os fontes da aplicação em um diretório da máquina onde a aplicação está instalada e copie os simbolos da aplicação para o diretório Bin da sua<br />
aplicação. Feito isso, execute o DbgClr.exe e selecione a opção <em>File -&gt; Open -&gt; File</em> e selecione todos os arquivos .cs ou .vb da sua aplicação.</p>
<p>Após abrir fontes da sua aplicação e definido os breakpoints desejados. Selecione a opção <em>Tools -&gt; Attach to process</em>, uma nova janela será<br />
exibida onde você poderá selecionar o processo do IIS a ser depurado, que é o w3wp.exe. Lembre-se que para cada <em>Application Pool</em> o IIS cria uma<br />
instância do processo w3wp.</p>
<p>Abraços.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/codebehind.wordpress.com/4/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/codebehind.wordpress.com/4/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/codebehind.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/codebehind.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/codebehind.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/codebehind.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/codebehind.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/codebehind.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/codebehind.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/codebehind.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/codebehind.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/codebehind.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/codebehind.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/codebehind.wordpress.com/4/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/codebehind.wordpress.com/4/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/codebehind.wordpress.com/4/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codebehind.wordpress.com&amp;blog=421943&amp;post=4&amp;subd=codebehind&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://codebehind.wordpress.com/2007/07/23/depurando-aplicacoes-utilizando-o-dbgclr/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ae2788af9191c2991b81e24fe350b030?s=96&#38;d=identicon" medium="image">
			<media:title type="html">Thiago</media:title>
		</media:content>
	</item>
		<item>
		<title>Como ser um melhor programador nos próximos 6 meses</title>
		<link>http://codebehind.wordpress.com/2007/07/22/como-ser-um-melhor-programador-nos-proximos-6-meses/</link>
		<comments>http://codebehind.wordpress.com/2007/07/22/como-ser-um-melhor-programador-nos-proximos-6-meses/#comments</comments>
		<pubDate>Sun, 22 Jul 2007 14:20:40 +0000</pubDate>
		<dc:creator>Thiago</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://codebehind.wordpress.com/2007/07/22/como-ser-um-melhor-programador-nos-proximos-6-meses/</guid>
		<description><![CDATA[Bom, como fui intimado pelo Wanderley para fazer um post sobre o tema acima e já faz um certo tempo que não publico nenhum post nesse pobre blog. Me senti motivado a tirar as teias de aranha do coitado e falar um pouco sobre o tema. Costumo ler muitos, muitos blogs, o que muitas vezes [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codebehind.wordpress.com&amp;blog=421943&amp;post=3&amp;subd=codebehind&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Bom, como fui intimado pelo <a href="http://www.caloni.com.br/blog/archives/como-ser-um-melhor-desenvolvedor-nos-proximos-seis-meses">Wanderley</a> para fazer um post sobre o tema acima e já faz um certo tempo que não publico nenhum <em>post</em> nesse pobre blog.  Me senti motivado a tirar as teias de aranha do coitado e falar um pouco sobre o tema.</p>
<p>Costumo ler muitos, muitos blogs, o que muitas vezes consome um certo tempo do meu horário de trabalho, espero que meu gerente não leia isso. Mas nos últimos 3 anos, blogs tem sido a melhor forma pra mim de me manter atualizado. Claro, blogs não são o “Holy Grail” do conhecimento, mas ajudam e muito. Por isso, blog é uma coisa que prentendo continuar lendo nos próximos 6 meses, mesmo isso não me fazendo um melhor programador, me deixam por dentro do que está acontecendo no mundo da tecnologia de um modo geral.</p>
<p>Contato com programadores de outras plataformas e linguagens de programação é também uma forma excelente de se tornar um melhor programador, já que você vai sempre ver os pontos de vista de diversos ângulos.</p>
<p>Na <a href="http://www.opencs.com.br">Open</a>, empresa que trabalho, é o lugar certo pra isso, não querendo vender o peixe da empresa. Mas lá temos contato com diversos tipos de tecnologias e plataformas, como desenvolvimento de Device Drivers, Engenharia Reversa de Trojans, desenvolvimento de aplicações para celulares e claro .Net.</p>
<p>Pra ser sincero não tenho um super plano pra me tornar um melhor programador nos próximos 6 meses, mas tenho algumas coisas que preciso fazer:</p>
<ul>
<li>Tenho uma pequena pilha de livros pra ler, então pretendo terminar ela, ou chegar a metade.</li>
<li>Postar mais frequentemente.</li>
<li>Aprender a organizar melhor meu tempo.</li>
<li>Roubando um parágrafo do blog do <a href="http://www.driverentry.com.br/blog">Fernando</a>: “Andar de bicicleta e ir à praia também fazem parte da formação de programadores excelentes.”</li>
</ul>
<p>Bem, é isso. Espero ter pago minha dívida junto ao Wanderley.</p>
<p>Abraços.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/codebehind.wordpress.com/3/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/codebehind.wordpress.com/3/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/codebehind.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/codebehind.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/codebehind.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/codebehind.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/codebehind.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/codebehind.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/codebehind.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/codebehind.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/codebehind.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/codebehind.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/codebehind.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/codebehind.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/codebehind.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/codebehind.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codebehind.wordpress.com&amp;blog=421943&amp;post=3&amp;subd=codebehind&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://codebehind.wordpress.com/2007/07/22/como-ser-um-melhor-programador-nos-proximos-6-meses/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ae2788af9191c2991b81e24fe350b030?s=96&#38;d=identicon" medium="image">
			<media:title type="html">Thiago</media:title>
		</media:content>
	</item>
		<item>
		<title>Problemas com o Crystal Reports após o Visual Studio 2005 SP1</title>
		<link>http://codebehind.wordpress.com/2006/09/18/hello-world/</link>
		<comments>http://codebehind.wordpress.com/2006/09/18/hello-world/#comments</comments>
		<pubDate>Mon, 18 Sep 2006 12:32:12 +0000</pubDate>
		<dc:creator>Thiago</dc:creator>
				<category><![CDATA[Problemas]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Não sei quantos de vocês já tiveram o problema que eu vou descrever agora, mas me parece que ocorreu logo após a instalação do Service Pack 1 do Visual Studio 2005, que pode ser encontrado aqui. Let´s get down to business. Após instalar o SP 1 do Visual Studio 2005, fiquei um tempo sem ter [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codebehind.wordpress.com&amp;blog=421943&amp;post=1&amp;subd=codebehind&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="display:block;width:400px;">Não sei quantos de vocês já tiveram o problema que eu vou descrever agora, mas me parece que ocorreu logo após a instalação do Service Pack 1 do Visual Studio 2005, que pode ser encontrado <a href="http://www.microsoft.com/downloads/details.aspx?familyid=bb4a75ab-e2d4-4c96-b39d-37baf6b5b1dc&amp;displaylang=en">aqui</a>.</p>
<p>Let´s get down to business.</p>
<p>Após instalar o SP 1 do Visual Studio 2005, fiquei um tempo sem ter que trabalhar em um projeto que usa extensivamente relatórios feitos em Crystal Reports. Semana passada, quando tive que efetuar uma alteração em um dos relatórios desse projeto, abri a solução rodei o projeto e vejam a tela bacaninha que pipocou.</p>
<p><a href="http://photos1.blogger.com/x/blogger/494/3680/1600/447116/img1.png"><img border="0" src="http://photos1.blogger.com/x/blogger/494/3680/320/929457/img1.png" style="display:block;cursor:hand;text-align:center;margin:0 auto 10px;" /></a></p>
<p>Legal, não?</p>
<p>A única pista que eu tinha até o momento era o bendito CLSID <em>{11BD5260-15B6-412D-80DB-12BB60B8FE50}</em>, abri o regedit e fiz uma procura por esse CLSID, o que me deu uma pista um pouco melhor de quem poderia ser o culpado de toda essa bagunça. Imagem abaixo mostra que esse CLSID se refere á uma biblioteca do Crysta Reports chamada <em>sacommlayer.dll</em>.</p>
<p><a href="http://photos1.blogger.com/x/blogger/494/3680/1600/176511/img2.png"><img border="0" src="http://photos1.blogger.com/x/blogger/494/3680/320/796794/img2.png" style="display:block;cursor:hand;text-align:center;margin:0 auto 10px;" /></a></p>
<p>Procurei a abençoada da sacommlayer.dll no caminho que estava no Registro, <em>C:\Arquivos de programas\Arquivos comuns\Business Objects\2.7\Bin\</em>, para minha não muita surpresa, a criatura não estava lá. Entrei em uma outra máquina que o Service Pack 1 não tinha sido instalado, e como eu aprendi que tudo na vida só a violência constrói, copiei todas as dlls existentes no diretório onde a <em>sacommlayer.dll</em> se encontrava para a minha máquina.</p>
<p>Tentei acessar novamente a página em que o relatório estava dando problema e dessa vez a página abriu sem problemas. Antes a página que tinha o componente do Crystal Reports nem abria, agora já estava abrindo. Apliquei alguns filtros no relatório e mandei executar e para minha não grande surpresa novamente mais um problema.</p>
<p><a href="http://photos1.blogger.com/x/blogger/494/3680/1600/389699/img3.png"><img border="0" src="http://photos1.blogger.com/x/blogger/494/3680/320/360649/img3.png" style="display:block;cursor:hand;text-align:center;margin:0 auto 10px;" /></a></p>
<p>Como vocês podem ver pela imagem, por algum motivo na minha super cópia de arquivos de uma máquina para outra, eu devo ter esquecido de incluir essa tal de <em>crpe32.dll</em>. Entrei no diretório <em>C:\Arquivos de programas\Arquivos comuns\Business Objects\2.7\Bin\</em>, e a dll estava lá. Imaginei que aquele não seria o local correto dessa dll, para tirar essa dúvida abri o <a href="http://www.microsoft.com/technet/sysinternals/fileanddiskutilities.mspx">FileMon</a> e apliquei o filtro para <em>crpe32.dll</em>. Para minha supresa o FileMon não &#8220;pegava&#8221; nada, então possivelmente a excessão estava ocorrendo no lado gerenciado.</p>
<p>Se nós dermos uma olhada na stack trace da última imagem, podemos ver que a excessão foi lançada no construtor da classe <em>CrystalDecisions.CrystalReports.Engine.CRPE</em>. Abrindo o <a href="http://www.aisto.com/roeder/dotnet/">Reflector</a> e tentarmos localizar o assembly <em>CrystalDecisions.CrystalReports.Engine</em>, não será possível. Não sei o motivo, mas para resolver isso tem um jeitinho.</p>
<p>Abra o prompt e navegue até o diretório, <em>%windir%\Assembly\GAC_MSIL\CrystalDecisions</em><br />
<em>.CrystalReports.Engine\10.2.3600.0__692fbea5521e1304</em>, e lá estará a <em>CrystalDecisions.CrystalReports.Engine.dll</em>. Copie a dll para um outro diretório fora dessa árvore de diretórios e será possível abrir esse assembly pelo Reflector.</p>
<p>Ufa, depois de tudo isso vamos voltar ao nosso problema.</p>
<p>Navegando pelo Reflector será possível ver que existem dois construtores para essa classe, um estático e ou de instancia, abra o construtor estático e veremos a imagem a seguir.</p>
<p><a href="http://photos1.blogger.com/x/blogger/494/3680/1600/656289/img4.png"><img border="0" src="http://photos1.blogger.com/x/blogger/494/3680/320/553504/img4.png" style="display:block;cursor:hand;text-align:center;margin:0 auto 10px;" /></a></p>
<p>A linha marcada em vermelho chama o método estático <em>CRPE.GetDllPath() que pode ser a nossa fonte de respostas, abrindo o código desse método no Reflector temos o seguinte:</em><em><a href="http://photos1.blogger.com/x/blogger/494/3680/1600/992120/img5.png"><img border="0" src="http://photos1.blogger.com/x/blogger/494/3680/320/375567/img5.png" style="display:block;cursor:hand;text-align:center;margin:0 auto 10px;" /></a></em><em>Opa, agora sim hein, parece que esse método &#8220;descobre&#8221; o caminho da <strong>crpe32.dll</strong> acessando a seguinte chave no registro <strong>HKLM\SOFTWARE\Crystal Decisions\10.2\Crystal Reports</strong> e procurando pelo caminho contido no valor <strong>CommonFiles</strong>, entrando no registro da minha máquina, como mostra a imagem abaixo, não existe o valor <strong>CommonFiles</strong>.</em><em><a href="http://photos1.blogger.com/x/blogger/494/3680/1600/716362/img6.png"><img border="0" src="http://photos1.blogger.com/x/blogger/494/3680/320/804233/img6.png" style="display:block;cursor:hand;text-align:center;margin:0 auto 10px;" /></a></p>
<p>Daí em diante a coisa foi simples, criei o valor <strong>CommonFiles</strong> e o defini o caminho <strong>C:\Arquivos de programas\Arquivos comuns\Business Objects\2.7\Bin</strong>.</p>
<p>Executei novamente o projeto e abri a página que tinha o relatório com problema e agora tudo funciona perfeitamente. <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Cagamba, que trabalho, mas o importante é que agora está tudo funcionando como era antes, espero que isso ajude alguém.</p>
<p>[]´s</p>
<p>Thiago</p>
<p></em></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/codebehind.wordpress.com/1/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/codebehind.wordpress.com/1/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/codebehind.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/codebehind.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/codebehind.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/codebehind.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/codebehind.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/codebehind.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/codebehind.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/codebehind.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/codebehind.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/codebehind.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/codebehind.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/codebehind.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/codebehind.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/codebehind.wordpress.com/1/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=codebehind.wordpress.com&amp;blog=421943&amp;post=1&amp;subd=codebehind&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://codebehind.wordpress.com/2006/09/18/hello-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/ae2788af9191c2991b81e24fe350b030?s=96&#38;d=identicon" medium="image">
			<media:title type="html">Thiago</media:title>
		</media:content>

		<media:content url="http://photos1.blogger.com/x/blogger/494/3680/320/929457/img1.png" medium="image" />

		<media:content url="http://photos1.blogger.com/x/blogger/494/3680/320/796794/img2.png" medium="image" />

		<media:content url="http://photos1.blogger.com/x/blogger/494/3680/320/360649/img3.png" medium="image" />

		<media:content url="http://photos1.blogger.com/x/blogger/494/3680/320/553504/img4.png" medium="image" />

		<media:content url="http://photos1.blogger.com/x/blogger/494/3680/320/375567/img5.png" medium="image" />

		<media:content url="http://photos1.blogger.com/x/blogger/494/3680/320/804233/img6.png" medium="image" />
	</item>
	</channel>
</rss>
