安装是否检测到要安装的驱动器

时间:2010-08-24 15:40:05

标签: visual-studio-2008 windows-installer

我们的某个程序需要安装C驱动器或D驱动器。我需要安装的是安装是否检测到具有某种文件夹结构的D盘:

d:\应用程序数据

如果找到了,它会在那里安装它。如果找不到,它会在这里安装:

C:\应用程序数据

我正在使用VS 2008

1 个答案:

答案 0 :(得分:0)

将安装程序硬编码到任何特定驱动器是违反Windows安装程序的最佳做法。这就是我们使用[WindowsVolume]和[ProgramFilesFolder]等内容的原因。

也就是说,自定义操作可以在安装时有条件地提供覆盖,前提是如果自定义操作找不到特定的覆盖,它将返回到标准的最佳实践。

Forexample

尊重命令行defualts作为第一优先级。 尝试设置D:\ AppData 尝试设置C:\ AppData 否则默认[WindowsVolume] \ AppData(不是由自定义操作完成,内置于目录表中)

然后提供一个对话框,允许用户以交互方式覆盖

当我说“尝试”时,我的意思是写一些代码来查看该字母的固定磁盘是否存在

现在你的问题就是听起来好像你正在使用Visual Studio部署项目,坦率地说这个工具不会给你所需的灵活性(没有一些聪明的后期构建过程)来插入自定义动作的方式你需要它。假设您的工具将支持您所需的工作,请编写一个自定义操作:

在UI和执行顺序中的成本初始化之前计划(以支持静默安装)

如果已经设置了属性(以尊重命令行)并且产品未安装(在修复或维护操作期间无法更改目录;它已修复),则表示它不运行

将其安排为仅运行一次(以便CA不会覆盖对话框所做的任何更改)