【问题标题】:Installing INF file during Installation via MSI Installers through Custom Action在安装过程中通过 MSI 安装程序通过自定义操作安装 INF 文件
【发布时间】:2015-10-23 15:29:28
【问题描述】:

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

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

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

项目构建成功,当我尝试使用"setup.exe" 安装包时,出现错误

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

有人可以就这个问题给我一个建议吗?

【问题讨论】:

    标签: visual-studio-2015 setup-project custom-action inf


    【解决方案1】:

    我在 MSDN 论坛上的回答:

    我不知道您是如何指定 Program Files 文件夹的,但您不应该对其进行硬编码 - 您应该在应用程序文件夹名称中使用 ProgramFilesFolder 属性。

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

    除此之外,我会跳过自定义操作,继续安装,然后查看文件的实际位置。

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

    【讨论】:

      【解决方案2】:

      试试看:

      [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

      【讨论】:

        猜你喜欢
        • 2012-12-17
        • 2015-01-14
        • 2014-03-12
        • 1970-01-01
        • 2014-08-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-12
        相关资源
        最近更新 更多