2

我仍在尝试运行我的 easyhook 练习。现在,我收到此错误:

      System.ApplicationException: Unable to install assembly in the GAC. This usually indicates either an invalid assembly path or you are not admin.
   at EasyHook.NativeAPI.GacInstallAssembly(IntPtr InContext, String InAssemblyPath, String InDescription, String InUniqueID)
   at EasyHook.Config.Register(String InDescription, String[] InUserAssemblies)
   at HookTest.Program.Main()

问题似乎源于这里:

        Config.Register(
            "Easy hook test",
            "Hook Test.vshost.exe",
            "TestInject.dll");

我正在尝试构建的解决方案由两个项目组成,一个库和一个应用程序。构建解决方案后,我将 testinject.dll 复制到 hooktest 调试文件夹,然后在调试模式下运行它。也许我应该使用绝对路径来指示 testinject.dll 在哪里?或在某处添加库?

更新 1

            "Easy hook test",
            @"Hook Test.vshost.exe",
            @"I:\Documents and Settings\foo\Desktop\Hook Test\TestInject\bin\Debug\TestInject.dll");

即使进行了此更改,我也会遇到相同的错误

4

3 回答 3

2

尝试将目标框架从 4.0 更改为 3.5,这应该可以解决问题。

于 2011-04-10T12:29:24.990 回答
1

这通常表示无效的程序集路径或您不是管理员。

正如您所期望的那样,这是一条很好的错误消息。路径可能是错误的,因为您没有指定程序集的完整路径(即 c:\mumble\foo.dll)。由于 UAC,您通常没有管理员权限。使用清单获取权限提升或在管理员模式下运行 Visual Studio(更改桌面快捷方式)。

于 2011-01-07T14:43:01.133 回答
0

即使您自己是管理员,但这并不意味着您运行的应用程序将被提升为管理员。事实上,VS 2010 不会,大多数其他的也不会。您实际上必须右键单击“以管理员身份运行...”。实际上,我将我的 VS 开始菜单快捷方式的属性设置为“以管理员身份运行”,这样我就永远不会忘记,因为我也为此感到困惑。

于 2011-01-25T09:39:49.520 回答