2015-10-23 80 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