0

我有一个生成 DLL 的 Visual Studio 2010 C# 类库项目。从 Windows 7 切换到 Windows 8 后,我开始收到错误消息:

无法注册程序集“C:\Users\Almeesoft User\Dropbox\code\hysysintegration\HysysMembraneExtension\Almeesoft.HysysMembraneExtension\bin\Release\Almeesoft.HysysMembraneExtension.dll” - 访问被拒绝。请确保您以管理员身份运行该应用程序。拒绝访问注册表项“HKEY_CLASSES_ROOT\CLSID{0C1B5FDB-7C22-3FF9-B6B0-645C2E72D934}”

更改 UAC 和文件夹权限没有帮助。唯一有帮助的是以管理员身份运行 Visual Studio。还有其他方法吗?

4

1 回答 1

3

这对于 Windows 8 来说并不新鲜,允许 MSBuild 注册 [ComVisible] 程序集需要自 Vista 以来的提升。因为它写入受 UAC 保护的注册表项。也许您在以管理员权限启动 VS 之前有一个桌面快捷方式。这就是它所需要的。

您可以通过取消勾选“注册 COM 互操作”选项并从提升的命令提示符运行 Regasm.exe 手动完成。使用 /codebase 和 /tlb 选项。如果将 [Guid] 属性应用于互操作接口和类,则只需执行一次。这很危险,您应该在运送程序集之前再次删除它们并重新构建,否则您将面临 DLL Hell 的风险。

于 2013-10-18T16:58:34.157 回答