2

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 ツールで失敗します。

前もって感謝します。

ケビン・ウェイト

4

1 に答える 1