[英]How to install application in custom folder using wix installer,other than Program Files folder
[英]install WIX installer application in C: partition instead of Program Files folder
我已经在VS2010中使用WIX创建了一个安装程序。当前,当我安装该应用程序时,它将在C:\\Program Files\\Wixdemoapplication
下安装该应用程序和与应用程序相关的依赖文件。 我需要对此进行自定义。我需要将应用程序直接安装在C:\\Wixdemoapplication
下的Wixdemoapplication
下,而不是C:\\Program Files\\Wixdemoapplication
。
需要帮忙。
尝试以下操作(未经测试;但可能足以满足您的需要):
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="INSTALLFOLDER" Name="Wixdemoapplication" />
</Directory>
否则,可以做一些其他有趣的事情,例如:
将此自定义操作添加到Product.wxs:
<CustomAction Id="SpawnBrowseFolderDialog" BinaryKey="CustomActions" DllEntry="SpawnBrowseFolderDialog" Return="check" />
将此添加到Product.wxs中某些对话框的按钮中:
<Control Id="BrowseButton" Type="PushButton" X="276" Y="126" Width="90" Height="18" Text="{\VSI_MS_Sans_Serif13.0_0_0}B&rowse..." TabSkip="no">
<Publish Event="DoAction" Value="SpawnBrowseFolderDialog"><![CDATA[1]]></Publish>
<Publish Property="INSTALLFOLDER" Value="[INSTALLFOLDER]"><![CDATA[1]]></Publish>
</Control>
在以下位置添加此自定义操作(右键单击解决方案,添加新项目,C#自定义操作项目):
[CustomAction]
public static ActionResult SpawnBrowseFolderDialog(Session session)
{
session.Log("Started the SpawnBrowseFolderDialog custom action.");
try
{
Thread worker = new Thread(() =>
{
FolderBrowserDialog dialog = new FolderBrowserDialog();
dialog.Description = "Please select an installation directory to house core files and components.";
dialog.SelectedPath = session["INSTALLFOLDER"];
DialogResult result = dialog.ShowDialog();
session["INSTALLFOLDER"] = dialog.SelectedPath;
});
worker.SetApartmentState(ApartmentState.STA);
worker.Start();
worker.Join();
}
catch (Exception exception)
{
session.Log("Exception while trying to spawn the browse folder dialog. {0}", exception.ToString());
}
session.Log("Finished the SpawnBrowseFolderDialog custom action.");
return ActionResult.Success;
}
将您的程序的<Directory>
元素嵌套在<Directory Id="WindowsVolume">
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.