19

Visual Studio ソリューションを構築していますが、出力ウィンドウに 1 つのプロジェクトについてのみエラーが表示されます。

エラータブ:

Error   161 Cannot register type library "D:\Sites\Website\MyPortal.Website.Controllers\bin\Debug\MyPortal.Website.Controllers.tlb". Error accessing the OLE registry. (Exception from HRESULT: 0x8002801C (TYPE_E_REGISTRYACCESS)) MyPortal.Website.Controllers

出力タブで:

Compile complete -- 0 errors, 153 warnings
  MyPortal.Website.Controllers -> D:\Sites\Website\MyPortal.Website.Controllers\bin\Debug\MyPortal.Website.Controllers.dll
c:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(3341,9): warning MSB3214: "D:\Sites\Website\MyPortal.Website.Controllers\bin\Debug\MyPortal.Website.Controllers.dll" does not contain any types that can be registered for COM Interop.
c:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(3341,9): error MSB3213: Cannot register type library "D:\Sites\Website\MyPortal.Website.Controllers\bin\Debug\MyPortal.Website.Controllers.tlb". Error accessing the OLE registry. (Exception from HRESULT: 0x8002801C (TYPE_E_REGISTRYACCESS))
========== Rebuild All: 8 succeeded, 1 failed, 0 skipped ==========

何か案は?

4

4 に答える 4

38

設定Register For Com interop すると、管理者として実行する必要があることがわかりました。

管理者がコンパイルしようとしないと、次のようなエラーが発生しました。

アセンブリ"C:\ TFS \ Project \ Src \ ProjectAddin \ bin \ Debug\ProjectAddin.dll"を登録できません-アクセスが拒否されました。アプリケーションを管理者として実行していることを確認してください。レジストリキー'HKEY_CLASSES_ROOT\CLSID{3A6192EA-3C9C-39EB-99A3-3DBFF8CA118F}'へのアクセスが拒否されました。

上記のレジストリキーが存在しなかったので、作成してからコンパイルしようとすると、次のようになります。

タイプライブラリ「C:\ TFS \ Project \ Src \ ProjectAddin \ bin \ Debug\ProjectAddin.tlb」を登録できません。OLEレジストリへのアクセス中にエラーが発生しました。(HRESULTからの例外:0x8002801C(TYPE_E_REGISTRYACCESS))

解決

COM相互運用機能の登録をオフにすると、エラーが解消されます。または、より適切な解決策は次のとおりです。

Shiftキーを押しながらVisualStudioを右クリックして管理者として開き、プロジェクトを開きます。Com相互運用機能の登録にチェックマークを付けると、正常にコンパイルされます。

于 2012-06-04T23:02:58.420 に答える
24

誰かが csproj のプロパティを変更したことがわかりました。

エラーを解決するには:

  • プロジェクトを右クリックするだけで、
  • ビルドタブを選択
  • 出力セクションに移動
  • COM相互運用に登録するのチェックを外す
于 2011-02-25T08:42:50.643 に答える
3

プロジェクトでRegister for COM interop設定を有効にしているため、ビルド時に同じことが実行されています。この設定には、Visual Studio を管理者として明示的に起動しない限り、Visual Studio では使用できない管理者権限が必要です。

次のリンクにある手順に従って、管理者として Visual Studio を起動し、プロジェクトのビルドを再試行してください。

デフォルトで Visual Studio を管理者として実行する方法

于 2016-11-03T09:18:08.240 に答える