2012-04-19 7 views
1

私はいくつかのWebプロジェクトのソリューションを持っています。私は(約10のプロジェクトがあります)、独自のフォルダに各プロジェクトを構築していますaspnet_compilerのバグ?

:私は順番に各1上

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

を呼び出す場合

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

、すべてが正常です。

aspnet_compilerを10回呼び出すと、アセンブリの読み込みエラーが発生し、参照されているアセンブリが使用中であると表示されます。

これはバグですか?なぜそれが使用されていますか?そうすべきではない。

ロードすることができないアセンブリは、複数のプロジェクトにありますが、それぞれがbinフォルダに独自のコピーを持っています。

更新:参照の参照であるアセンブリの一部が(一部の)発生しているようです。完全なバインディング情報がロードされている人はうまくいくようです。

は、ここでは、直接ClientBuildManagerを呼び出すと、aspnet_compilerの外にないアイデアなぜ、問題があるように思えないdoes notの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

から失敗した負荷の1からのダンプです。

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