Vb.net 通过使用copyfile,元素文件不能绑定到msi包中

Vb.net 通过使用copyfile,元素文件不能绑定到msi包中,vb.net,wix,windows-installer,file-copying,Vb.net,Wix,Windows Installer,File Copying,我正在使用wix 3.0。我有一个文件夹名“images”。因此我想将所有文件从images复制到msi包中。当我复制所有文件并将msi安装到另一台电脑时,它没有绑定图像。当我使用simplefile元素时,文件绑定到msi包。那我该怎么办 请尽快回复我 谢谢你 Samir显然,您希望创建一个应用程序,该应用程序可以生成一个屏幕保护程序安装程序,其中包括用户选择的许多图像文件—一种专门用于创建屏幕保护程序安装程序的InstallShield应用程序 我首先创建一个模板MSI文件(使用wix 或者

我正在使用wix 3.0。我有一个文件夹名“images”。因此我想将所有文件从images复制到msi包中。当我复制所有文件并将msi安装到另一台电脑时,它没有绑定图像。当我使用simplefile元素时,文件绑定到msi包。那我该怎么办

请尽快回复我

谢谢你
Samir

显然,您希望创建一个应用程序,该应用程序可以生成一个屏幕保护程序安装程序,其中包括用户选择的许多图像文件—一种专门用于创建屏幕保护程序安装程序的InstallShield应用程序

我首先创建一个模板MSI文件(使用wix 或者其他的)大部分都是这样的 工作。您不知道用户稍后将选择哪些文件,因此添加一个ID为“UserSelectedFiles”的占位符组件。分发这个 使用应用程序模板MSI文件

然后,当用户想要生成 新安装程序,从复制 模板。编辑复制的msi,以便它也安装用户选择的文件。您可以通过.NET类来实现这一点 您可以在“部署”中找到 工具基础”API。这是wix附带的一组程序集;看看
C:\program files\Windows Installer
XML v3\sdk

我只对一些简单的东西使用了DTF API,比如下面的示例,它统计MSI中的文件表条目:

var database = new Database(@"\path\to\some\file.msi");
var list = database.ExecuteQuery("SELECT FileName FROM File");
Console.WriteLine(list.Count);
你的案子会更复杂一点。你可能不得不这样做

  • 生成包含 图像文件包含您所创建的类 在
    Microsoft.Deployment.Compression.Cab
    命名空间
  • 将CAB存档合并到msi中 使用
    数据库。合并
  • 将新条目添加到文件表中 微星的
  • 将产品代码更改为每个生成的MSI的唯一代码
  • 等等

要了解MSI文件的内容以及如何对其进行编辑,我建议您首先使用和工具进行一些操作。

显然,您希望创建一个应用程序,该应用程序可以生成一个屏幕保护程序安装程序,其中包含用户选择的许多图像文件-一种专门的InstallShield应用程序,仅用于创建屏幕保护程序安装程序

我首先创建一个模板MSI文件(使用wix 或者其他的)大部分都是这样的 工作。您不知道用户稍后将选择哪些文件,因此添加一个ID为“UserSelectedFiles”的占位符组件。分发这个 使用应用程序模板MSI文件

然后,当用户想要生成 新安装程序,从复制 模板。编辑复制的msi,以便它也安装用户选择的文件。您可以通过.NET类来实现这一点 您可以在“部署”中找到 工具基础”API。这是wix附带的一组程序集;看看
C:\program files\Windows Installer
XML v3\sdk

我只对一些简单的东西使用了DTF API,比如下面的示例,它统计MSI中的文件表条目:

var database = new Database(@"\path\to\some\file.msi");
var list = database.ExecuteQuery("SELECT FileName FROM File");
Console.WriteLine(list.Count);
你的案子会更复杂一点。你可能不得不这样做

  • 生成包含 图像文件包含您所创建的类 在
    Microsoft.Deployment.Compression.Cab
    命名空间
  • 将CAB存档合并到msi中 使用
    数据库。合并
  • 将新条目添加到文件表中 微星的
  • 将产品代码更改为每个生成的MSI的唯一代码
  • 等等

要了解MSI文件的内容以及如何对其进行编辑,我建议您首先使用和工具进行一些研究。

您的问题非常令人困惑。首先,不清楚为什么要使用常规元素而不是常规元素。您要复制的文件是否已存在于目标系统上?我想使用“复制文件”元素,因为我不知道要将多少图像存储到文件夹中。所有图像文件都存储到图像文件夹中。因此,所有图像都是动态生成的。我希望创建动态屏幕保护程序,用户可以从中选择多个图像他的电脑,然后一个swf文件自动生成。我创建了一个windows窗体,在其中我调用了swf文件和用户上传的图像。单击“生成”按钮后,应生成一个msi文件,用户可以将其安装到他的个人电脑上。您的问题非常令人困惑。首先,不清楚为什么要使用常规元素而不是常规元素。您要复制的文件是否已存在于目标系统上?我想使用“复制文件”元素,因为我不知道要将多少图像存储到文件夹中。所有图像文件都存储到图像文件夹中。因此,所有图像都是动态生成的。我希望创建动态屏幕保护程序,用户可以从中选择多个图像他的电脑,然后一个swf文件自动生成。我创建了一个windows窗体,在其中我调用了swf文件和用户上传的图像。单击“生成”按钮后,应生成一个msi文件,用户可以将其安装到个人电脑上。