1

いくつかの Web プロジェクトを使用したソリューションがあります。

各プロジェクトを独自のフォルダーにビルドしました (約 10 個のプロジェクトがあります)。

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

私が電話したら

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

それぞれ順番に、すべて問題ありません。

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

これはバグですか?なぜそれが使用されているのでしょうか?そうであってはなりません。

読み込めないアセンブリは複数のプロジェクトにありますが、それぞれの bin フォルダーに独自のコピーがあります。

更新:参照の参照であるアセンブリの(一部の場合)発生するようです。完全なバインディング情報をロードしたものは機能しているようです。

以下は、失敗した読み込みの 1 つからのダンプです。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.
4

1 に答える 1

0

ClientBuildManager直接電話をかけると、外でaspnet_compilerは問題ないようですが、理由はわかりません。

var parameter = new ClientBuildManagerParameter
    {
        PrecompilationFlags = PrecompilationFlags.ForceDebug
    };
var client = new ClientBuildManager("/", src, dest, parameter);
client.PrecompileApplication();
于 2012-04-23T08:10:10.260 に答える