Visual Studio 2010 - Type E REGISTRYACCESS

je construis ma solution VS2010 et dans la fenêtre de sortie il y a une erreur juste pour un projet.

dans l'onglet erreur:

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

dans l'onglet de sortie:

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

des idées?

15
demandé sur VividD 2011-02-24 19:56:44

4 réponses

lors du réglage Register For Com interop j'ai trouvé que vous devez exécuter en tant qu'administrateur.

sans administrateur essayant de compiler j'ai eu des erreurs comme:

ne peut pas enregistrer l'assemblage "C:\TFS\Project\Src\ProjectAddin\bin\Debug \ ProjectAddin.dll" - accès refusé. Veuillez assurez-vous que vous êtes en cours d'exécution l'application en tant qu'administrateur. Accès à la clé de registre "HKEY_CLASSES_ROOT\CLSID{3A6192EA-3C9C-39EB-99A3-3DBFF8CA118F}" est refusé.

la clé de Registre ci-dessus n'existait pas donc je l'ai créée, puis j'ai essayé de compiler j'ai eu:

ne peut pas s'inscrire tapez bibliothèque "C:\TFS\Project\Src\ProjectAddin\bin\Debug \ ProjectAddin.tlb". Erreur accès au registre OLE. (Exception de HRESULT: 0x8002801C (TYPE_E_REGISTRYACCESS))

Solution

désactiver le Registre COM interop et l'erreur disparaît.

Maj + clic droit visuel Studio et ouvrir en tant qu'Administrateur, ouvrez le projet. Cochez Enregistrer pour Com interop et il compile correctement.

23
répondu Jeremy Thompson 2012-06-04 23:02:58

j'ai trouvé quelqu'un modifie une propriété dans le csproj.

Pour résoudre l'erreur:

  • il suffit de cliquer avec le bouton droit de la souris sur le projet,
  • choisir Construire onglet
  • Sortie
  • décocher la case inscrivez-vous à COM interop
22
répondu Junior M 2011-02-25 08:42:50

pour moi ce problème a commencé quand j'ai déménagé sur une machine Win7 x64. J'ai d'autres membres de l'équipe sans x64 donc je suppose que c'est le problème. J'ai besoin de COM interop, donc je ne peux pas l'éteindre. J'ai pu résoudre le problème en décochant le Registre COM interop (dans Project properties > Build page), puis en ajoutant un événement post-build pour faire l'enregistrement COM:

"%Windir%\Microsoft.NET\Framework\v2.0.50727\regasm" /codebase "$(TargetPath)"
10
répondu Rory 2011-07-21 15:00:26

Depuis, dans votre projet, vous avez activé inscrivez-vous à COM interop paramètre, le même est en cours d'exécution au moment de la construction. Ce paramètre nécessite des privilèges admin qui ne sont pas disponibles sous Visual Studio à moins que vous ne lanciez Visual Studio en tant qu'administrateur, explicitement.

vous pouvez suivre les étapes disponibles au lien suivant pour lancer Visual Studio en tant qu'administrateur et ensuite essayer de construire votre projet à nouveau -

comment exécuter Visual Studio as Administrateur par défaut

2
répondu SoftEngi 2017-05-23 12:17:47