我们有大型C#应用程序,涵盖许多项目,它们通过在.VDProj文件上运行MSBuild(或通过Visual Studio 2010)打包成.MSI文件。安装通常正常,如果在本地计算机上找不到其他必需的软件,则会正确发出警告。
但是,如果安装成功,我们希望安装程序将自身复制到程序文件中的某个特定文件夹。例如'c:\ program files \ app \ version \ install_1.2.3.4.msi'。
有谁知道这样做的方法?
答案 0 :(得分:1)
您可以从OriginalDatabase属性获取MSI路径。要复制MSI,您可以使用在InstallFinalize标准操作后安排的custom action。
例如,您可以编写一个简单的EXE,它接收[OriginalDatabase]作为参数并执行复制操作。
Visual Studio中未显示InstallFinalize。您可以在安装下添加自定义操作,并使用ORCA编辑MSI,以便在InstallExecuteSequence表中的InstallFinalize之后更改其序列。
您可以使用其他设置制作工具来更好地控制自定义操作。