Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.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
C# 通过Visual Studio安装Windows Installer:在应用程序中使用多个CAB?可能的_C#_Setup Project_Setup Deployment - Fatal编程技术网

C# 通过Visual Studio安装Windows Installer:在应用程序中使用多个CAB?可能的

C# 通过Visual Studio安装Windows Installer:在应用程序中使用多个CAB?可能的,c#,setup-project,setup-deployment,C#,Setup Project,Setup Deployment,我有一个从VisualStudio2010的安装和部署项目创建的Windows安装程序项目。在安装程序中,我有许多需要安装的文件,但只有少数文件需要更改(例如,占文件总数的5%,但文件数量和名称保持不变,但密码更改,因为它们是数据库文件),而其余95%保持不变(如图像文件) 对于那些5%的文件,我的安装程序必须从头开始一直运行。VS是否可能支持多个cab创建,如 永久95%文件的第一个cab 可更改的5%文件的第二个cab 这个95%的cab是预先创建的,我只需要制作第二个cab,但当我安装ms

我有一个从VisualStudio2010的安装和部署项目创建的Windows安装程序项目。在安装程序中,我有许多需要安装的文件,但只有少数文件需要更改(例如,占文件总数的5%,但文件数量和名称保持不变,但密码更改,因为它们是数据库文件),而其余95%保持不变(如图像文件)

对于那些5%的文件,我的安装程序必须从头开始一直运行。VS是否可能支持多个cab创建,如

永久95%文件的第一个cab

可更改的5%文件的第二个cab


这个95%的cab是预先创建的,我只需要制作第二个cab,但当我安装msi时,它会安装两个cab内容。是否可能???

这是Visual Studio安装项目不支持的。某些商业设置创作工具确实支持配置每个CAB,但很可能无法获得所需的行为

出租车只是文件的容器。实际文件信息存储在MSI中。因此,单独生成CAB不是一个解决方案,因为它们可能与MSI数据库不匹配


您所能做的最好的事情就是尝试找到一个具有良好缓存机制的安装工具。这样可以缩短安装程序的构建时间。

我做了我想做的事,但做了一点小小的调整

在我的安装项目中,我删除了永久文件(图像文件)。这将我的msi缩小到早期大小的1/4,并且只花费早期创建时间的1/4


然后,对于这些永久文件,我编写了一个自定义操作,将这些文件从sourcedir传输到targetdir。

这通常是没有意义的,因为source dir通常位于开发人员的机器/构建服务器上,而target dir位于安装运行的机器上-在一般情况下,很少有两个文件夹是相同的。@Damien_不信者:我认为sourcedir是msi所在的文件夹。在开发者机器上,它可以是debug/release文件夹,当写入CD/DVD时,sourcedir是CD-rom驱动器上msi所在的文件夹。targetdir是安装文件的文件夹。