Páginas

quinta-feira, 20 de agosto de 2009

Erro ao executar o SGEN

Hoje encontrei um problema ao tentar compilar um projeto dentro do Source Control (no caso, Rational Clear Case).

Este projeto em C# faz referência a um web service, e por isso no processo de compilação é chamado o SGEN para gerar dll *.XmlSerializers.dll. Pra ser sincero não sei porque esta dll deve existir, isso fica para um próximo post. A questão agora é como resolver o problema.

O erro que ocorreu foi o abaixo. Deu access denied na hora de executar o SGEN em cima do meu projeto, sendo que este projeto faz referência a componentes (FxCopSdk.dll) que fazem parte do Source Control (ou seja, estão com o atributo read-only).

------ Rebuild All started: Project: bba.fwk.vbp.rules.code, Configuration: Release Any CPU ------c:\WINDOWS\Microsoft.NET\Framework\v3.5\Csc.exe /noconfig /nowarn:1701,1702 /errorreport:prompt /warn:4 /define:TRACE /reference:..\..\04_referencias\FxCop\FxCopSdk.dll /reference:..\..\04_referencias\FxCop\Microsoft.Cci.dll /reference:c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dll /reference:c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dll /reference:c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.EnterpriseServices.dll /reference:c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Web.Services.dll /reference:c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Xml.dll /debug:pdbonly /filealign:512 /optimize+ /out:obj\Release\bba.fwk.vbp.rules.code.dll /resource:FwkCodeRuleResource.xml,bba.fwk.vbp.rules.code.FwkCodeRuleResource.xml /target:library DoNotExceedMaximumLinesOfCode.cs FwkCodeConfig.cs FwkCodeRule.cs MayExceedSomeNumberOfLinesOfCode.cs Properties\AssemblyInfo.cs Properties\Settings.Designer.cs "Web References\webReferences\Reference.cs"
Compile complete -- 0 errors, 0 warningsC:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\sgen.exe /assembly:Z:\bf_view_C02_BBACQ00298239\ADMCOMP_01\BBA_Framework\02_FWK.Net_v2\16_Validador_BP_SQL\00_Implementacao\00_Fontes\bba.fwk.vbp.rules.code\obj\Release\bba.fwk.vbp.rules.code.dll /proxytypes /reference:..\..\04_referencias\FxCop\FxCopSdk.dll /reference:..\..\04_referencias\FxCop\Microsoft.Cci.dll /reference:c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.dll /reference:c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.dll /reference:c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.EnterpriseServices.dll /reference:c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Web.Services.dll /reference:c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Xml.dll SGEN : error : Could not load file or assembly 'FxCopSdk, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. Access is denied.Done building project "bba.fwk.vbp.rules.code.csproj" -- FAILED.


A solução que encontrei foi desativar ("Off") a opção "Generate serialization assembly". Com isso, a dll *.XmlSerializers.dll não é gerada, e não passamos pelo problema.

Agora a questão é pra que serve "Generate serialization assembly"..., mas isso fica pra depois...