2015-10-23 113 views
1

我有一個visual studio setupproject來安裝我的內核驅動程序"mydriver"。當我右鍵點擊並安裝我的司機是從inf文件安裝。通過自定義操作通過MSI安裝程序安裝期間安裝INF文件

現在我想從自定義操作做類似這樣的動作。使用設定項目的標準動作,我想了.inf.sys文件加載到C:\Program Files\Myfolder

在相同的安裝項目,我在加入"InfDefaultinstall.exe"作爲自定義操作安裝在自定義操作編輯欄中。在自定義操作的參數屬性,我加入了文件"C:\Program Files\Myfolder\mydriver.inf"

成功建立,當我試圖安裝使用"setup.exe"包,我得到一個錯誤

項目「系統找不到指定文件」

可有人請給我關於這個問題的建議?

回答

0

我從MSDN論壇回答:

我不知道你是如何規定的Program Files文件夾,但你不應該硬編碼它 - 你應該使用ProgramFilesFolder屬性的應用程序文件夾名稱。

您還需要告訴您是否構建32位或64位設置。一個32位x86設置不能安裝到"C:\Program Files\",因爲這是在64位的程序文件的文件夾,安裝將重定向到"C:\Program Files(x86)\"。所以如果你的代碼找不到文件,你可能會遇到這些文件夾的問題。如果它是32位設置,則必須使用x86文件夾。

除此之外,我會跳過自定義操作,讓安裝繼續,並查看文件的實際位置。

另外請確保您在自定義操作代碼中指定了inf文件的完整完整路徑。您沒有運行來自Explorer的呼叫,您可以從中獲得默認工作目錄的便利。

0

試試:

[RunInstaller(true)] 
public partial class CustomInstaller : System.Configuration.Install.Installer 
{ 
    public override void Install(System.Collections.IDictionary stateSaver) 
    { 
     base.Install(stateSaver); 
     string path = this.Context.Parameters["targetdir"]; 
     // Do something with path. 
    } 
} 

Getting Application path during the installation