Visual Studio 2010 - 无法注册程序集

Cos*_*ter 8 dll visual-studio-2010 dllregistration

我在Windows 7 VM上运行Visual Studio 2010并尝试构建一个相当大的解决方案.当我尝试这样做时,我收到错误:

Cannot register assembly "C:\Development\ProjectName\Source\bin\Debug\AssemblyName.dll" - access denied.  Please make sure you're running the application as administrator.  Access is denied.  (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
Run Code Online (Sandbox Code Playgroud)

我采取了以下步骤:

  1. 确认我实际上是以管理员身份运行Visual Studio 2010.
  2. 重启虚拟机.
  3. 确认程序集确实存在于Visual Studio正在查找的位置.
  4. 确认管理员可以完全控制相关文件.
  5. 清理并重建项目(多次).

我还发现构建创建AssemblyName.dll的项目,使用RegAsm手动注册它,然后构建需要AssemblyName.dll的项目不会导致错误,但这不是一个理想的解决方法,因为它需要手动控制.谁能给我一些关于如何解决这个问题的建议?

非常感谢.

小智 21

当您构建一个在项目属性的"编译"选项卡下选中"注册COM互操作"的程序集项目时,会发生此特定问题.正如Stephane所说,您必须右键单击 - >以管理员身份运行才能自动注册.

如果已经有来自不同机器的已编译程序集,则可以手动注册它并将该已编译程序集引用到项目中以绕过该问题.


小智 3

当您运行VS2010时,您是否右键单击并选择“以管理员身份运行”?如果不是,它实际上以较低权限的用户身份运行。一旦我选择“以管理员身份运行”,这个问题就消失了。