Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2015 通过自定义操作通过MSI安装程序在安装过程中安装INF文件_Visual Studio 2015_Setup Project_Custom Action_Inf - Fatal编程技术网

Visual studio 2015 通过自定义操作通过MSI安装程序在安装过程中安装INF文件

Visual studio 2015 通过自定义操作通过MSI安装程序在安装过程中安装INF文件,visual-studio-2015,setup-project,custom-action,inf,Visual Studio 2015,Setup Project,Custom Action,Inf,我有一个visual studio安装项目来安装我的内核驱动程序“mydriver”。当我右键单击并安装驱动程序时,它是从inf文件安装的 现在我想从自定义操作中执行类似的操作。使用安装项目中的标准操作,我想将.inf和.sys文件加载到C:\Program Files\Myfolder中 在同一个安装程序项目中,我在自定义操作编辑器的安装部分添加了“InfDefaultinstall.exe”作为自定义操作。在自定义操作的arguments属性中,我将文件添加为“C:\Program File

我有一个visual studio安装项目来安装我的内核驱动程序
“mydriver”
。当我右键单击并安装驱动程序时,它是从
inf
文件安装的

现在我想从自定义操作中执行类似的操作。使用安装项目中的标准操作,我想将
.inf
.sys
文件加载到
C:\Program Files\Myfolder

在同一个安装程序项目中,我在自定义操作编辑器的安装部分添加了
“InfDefaultinstall.exe”
作为自定义操作。在自定义操作的arguments属性中,我将文件添加为
“C:\Program Files\Myfolder\mydriver.inf”

项目成功构建,当我尝试使用
“setup.exe”
安装程序包时,我收到一个错误

“系统找不到指定的文件”


有人能给我一个关于这个问题的建议吗?

我在MSDN论坛上的回答:

我不知道您是如何指定ProgramFiles文件夹的,但您不应该硬编码它-您应该在应用程序文件夹名称中使用ProgramFilesFolder属性

您还需要知道是构建32位还是64位设置。32位x86安装程序无法安装到
“C:\Program Files\”
,因为这是64位程序文件文件夹,安装将重定向到
“C:\Program Files(x86)\”
。因此,如果代码找不到该文件,则这些文件夹可能会出现问题。如果是32位设置,则必须使用x86文件夹

除此之外,我将跳过自定义操作,让安装继续进行,并查看文件的实际位置


还要确保在自定义操作代码中指定inf文件的完整路径。您不是以从资源管理器调用的方式运行,在资源管理器中,您可以获得默认工作目录的便利

我在MSDN论坛上的回答:

我不知道您是如何指定ProgramFiles文件夹的,但您不应该硬编码它-您应该在应用程序文件夹名称中使用ProgramFilesFolder属性

您还需要知道是构建32位还是64位设置。32位x86安装程序无法安装到
“C:\Program Files\”
,因为这是64位程序文件文件夹,安装将重定向到
“C:\Program Files(x86)\”
。因此,如果代码找不到该文件,则这些文件夹可能会出现问题。如果是32位设置,则必须使用x86文件夹

除此之外,我将跳过自定义操作,让安装继续进行,并查看文件的实际位置

还要确保在自定义操作代码中指定inf文件的完整路径。您不是以从资源管理器调用的方式运行,在资源管理器中,您可以获得默认工作目录的便利

试试看:

[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.
    } 
}
试试看:

[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.
    } 
}