2011-01-07 65 views
2

我仍然試圖運行easyhook練習。現在,我得到這個錯誤:Easyhook在vs2010發出「無法在GAC中安裝程序集」錯誤

 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"); 

即使有這種變化,我得到了同樣的錯誤

回答

1

This usually indicates either an invalid assembly path or you are not admin.

這是好一條錯誤消息,因爲你可以期待。路徑可能是錯誤的,因爲您沒有指定程序集的完整路徑(即c:\ mumble \ foo.dll)。由於UAC,您通常沒有管理權限。使用清單來獲取權限提升或以管理員模式運行Visual Studio(更改桌面快捷方式)。

+0

我在我的win XP機器上使用管理員帳戶,因此VS應該以管理員模式運行,並且我已經使用完整路徑編譯而沒有成功。 (愚蠢的問題,我應該使用雙反斜槓,對嗎?「c:\\ mumble \\ foo.dll」) – kaharas 2011-01-07 14:48:39

0

即使您自己是管理員,但這並不意味着您運行的應用會被提升爲管理員。事實上,VS 2010不會,也不會是其他人。您實際上必須右鍵單擊「以管理員身份運行...」。我實際上將我的VS開始菜單快捷方式的屬性設置爲「以管理員身份運行」,這樣我就永遠不會忘記,因爲我也被燒了。

2

嘗試將目標框架從4.0更改爲3.5,應該這樣做。

相關問題