我想用我的安装程序部署基于.inf的USB驱动程序.
我想.inf需要放入%SystemRoot%\inf,但是还有.cat(我猜是WHQL认证?)和.sys文件.我该怎么办?
编辑:已解决,感谢有用的答案.我能够P/Invoke函数,所以我有一个安装后的操作,它运行以下代码:
namespace DriverPackageInstallAction
{
static class Program
{
[DllImport("DIFXApi.dll", CharSet = CharSet.Unicode)]
public static extern Int32 DriverPackagePreinstall(string DriverPackageInfPath, Int32 Flags);
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
DirectoryInfo assemblyDir = new DirectoryInfo(Application.ExecutablePath);
DirectoryInfo installDir = assemblyDir.Parent;
int result = DriverPackagePreinstall(installDir.FullName + @"\Driver\XYZ.inf", 0);
if (result != 0)
MessageBox.Show("Driver installation failed.");
}
}
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试为打印机驱动程序创建一个安装程序,使用WIX
我有
我正在考虑使用INF来部署驱动程序,但不知道如何实现它.
我也播下了这个问题,(可能是重复的)但作为一个初学者我不能完全理解如何做到这一点.
我需要通过自己和Write Registry将这些DLL和其他文件复制到相关文件夹中.或者是他们使用INF文件通过WIX引擎完成任务的任何简单方法?如果是的话,任何人都可以教我应该遵循的步骤吗?
我尝试将所有必要的文件复制到文件夹
<Component Id="PRNDRV_cat" Guid="{4fba0d21-64bb-458d-9b78-23aed7a39d14}" Directory = "PrinterFolder">
<difx:Driver Legacy='yes' />
<File Id="Catalog" Name="sielprndrv.cat" Source="Printer\prndrv.cat" />
<File Id="DataBase" Name="SIELPRNDRV.gpd" Source="Printer\PRNDRV.gpd" />
<File Id="Info" Name="SIELPRNDRV.inf" KeyPath="yes" Source="Printer\PRNDRV.inf" />
<File Id="ini" Name="SIELPRNDRV.ini" Source="Printer\PRNDRV.ini" />
</Component>
Run Code Online (Sandbox Code Playgroud)
并使用以下命令编译
candle -ext WixDifxAppExtension SielDrivers.wxs
light -ext WixUIExtension -ext WixDifxAppExtension SielDrivers.wixobj difxapp_x64.wixlib -o Setup.msi
Run Code Online (Sandbox Code Playgroud)
安装后,我可以看到它已在"程序和功能"中列出,但没有作为打印机添加到"设备和打印机"中.
我错过了什么?