2012-04-19 2 views
1

몇 가지 웹 프로젝트가있는 솔루션이 있습니다.aspnet_compiler의 버그?

나는 (약 10 프로젝트가있다) 자신의 폴더에 각 프로젝트를 구축 : 내가 차례로 각각에

aspnet_compiler -v/-p \"build/#{proj}\" merged/#{proj} 

를 호출 할 경우

/build/projA 
/build/projB 
/build/projC 

, 다 괜찮습니다.

aspnet_compiler을 모두 10 번 호출하면 참조 된 어셈블리가 사용되고 있음을 알리는 어셈블리로드 오류가 발생합니다.

이것은 버그입니까? 왜 사용중입니까? 그것은해서는 안됩니다.

로드 할 수없는 어셈블리는 여러 프로젝트에 있지만 각 프로젝트는 bin 폴더에 자체 복사본이 있습니다.

업데이트 : 참조를 참조하는 어셈블리가 일부 (일부) 생성 된 것처럼 보입니다. 완전한 바인딩 정보로로드 된 사람들은 제대로 작동하는 것 같습니다. 직접 ClientBuildManager를 호출하면 문제, 왜 생각이있을 것 나던 aspnet_compiler 외부

여기, fuslogvw

The operation failed. 
Bind result: hr = 0x80070020. The process cannot access the file because it is being used by another process. 

Assembly manager loaded from: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll 
Running under executable c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_compiler.exe 
--- A detailed error log follows. 

=== Pre-bind state information === 
LOG: User = andrew.bullock 
LOG: DisplayName = Yahoo.Yui.Compressor 
(Partial) 
WRN: Partial binding information was supplied for an assembly: 
WRN: Assembly Name: Yahoo.Yui.Compressor | Domain ID: 2 
WRN: A partial bind occurs when only part of the assembly display name is provided. 
WRN: This might result in the binder loading an incorrect assembly. 
WRN: It is recommended to provide a fully specified textual identity for the assembly, 
WRN: that consists of the simple name, version, culture, and public key token. 
WRN: See whitepaper http://go.microsoft.com/fwlink/?LinkId=109270 for more information and common solutions to this issue. 
LOG: Appbase = file:///E:/build/ProjA/ 
LOG: Initial PrivatePath = E:\build\ProjA\bin 
LOG: Dynamic Base = C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\src_projects_proja\061ad2e7 
LOG: Cache Base = C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\src_projects_proja\061ad2e7 
LOG: AppName = 627cc9a9 
Calling assembly : (Unknown). 
=== 
LOG: This bind starts in default load context. 
LOG: Using application configuration file: E:\build\ProjA\web.config 
LOG: Using host configuration file: 
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config. 
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind). 
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/src_projects_proja/061ad2e7/627cc9a9/Yahoo.Yui.Compressor.DLL. 
LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/src_projects_proja/061ad2e7/627cc9a9/Yahoo.Yui.Compressor/Yahoo.Yui.Compressor.DLL. 
LOG: Attempting download of new URL file:///E:/build/ProjA/bin/Yahoo.Yui.Compressor.DLL. 
LOG: Assembly download was successful. Attempting setup of file: E:\build\ProjA\bin\Yahoo.Yui.Compressor.dll 
LOG: Entering download cache setup phase. 
ERR: Error extracting manifest import from file (hr = 0x80070020). 
ERR: Setup failed with hr = 0x80070020. 
ERR: Failed to complete setup of assembly (hr = 0x80070020). Probing terminated. 

답변

0

에서 실패한 부하 중 하나에서 덤프입니다.

var parameter = new ClientBuildManagerParameter 
    { 
     PrecompilationFlags = PrecompilationFlags.ForceDebug 
    }; 
var client = new ClientBuildManager("/", src, dest, parameter); 
client.PrecompileApplication();