MSBuild でビルドすると単純な C# プロジェクトがあり、RegAsm に登録できないアセンブリがビルドされます (エラー RA000)。
Visual Studio 2010 でビルドされたまったく同じ .csProj が有効なアセンブリを作成し、RegAsm が正常に登録されますか?
私は使っているC:\windows\microsoft.net\framework64\v4.0.30319\msbuild.exe
どちらのビルド(MSBuild 4.0とVisual Studio 2010)も管理者権限で行っているため、登録権限は有効になっています。
- この苛立たしい異常を解決/理解/デバッグする方法を探しています。
- 不足している MSBuild 4.0 の修正/SPx がある可能性はありますか?
- マップのようなファイル (または他の .dll フォーマッター) を作成するツールはありますか?
MSbuild built からの RegAsm 出力bTest.dll
:
Microsoft (R) .NET Framework Assembly Registration Utility 4.0.30319.1
Copyright (C) Microsoft Corporation 1998-2004. All rights reserved.
RegAsm : error RA0000 : Failed to load 'C:\test\bTest.dll' because it is not a valid .NET assembly
Visual Studio 2010 ビルドからの RegAsm 出力bTest.dll
:
Microsoft (R) .NET Framework Assembly Registration Utility 4.0.30319.1
Copyright (C) Microsoft Corporation 1998-2004. All rights reserved.
Types registered successfully
Assembly exported to 'C:\test\bTest.tlb', and the type library was registered successfully
上記の場合、bTest.csProjファイルRegister COM interop
はチェックされておらず、ビルド後のステップとして RegAsm が実行されました。
ビルドがRegister COM interop
チェックされた状態で行われた場合、有効になります。Visual Studio 2010 ビルドは正しくbTest.tlbを生成します。ただし、MSBuild はbTest.tlbファイルを生成せず、結果のアセンブリは依然として RegAsm 4.0 ツールで失敗します。
前もって感謝します。
ケビン・ウェイト