我的目录有问题,我希望我的 InstallDir 成为我的顶级父目录,并且任何其他 Dir 都包含在此文件夹结构中。我已经尝试了多种方法,但似乎无法解决,但我的目标是能够使用 installDirDialog 来更改安装位置。保持不变的目录可以正确安装,但是如果我要更改安装位置,它只会构建新的文件夹结构,并且文件安装安装到默认位置。我知道它为什么要安装到这个位置,因为它引用了一个静态字符串,我只使用下面的例子来简化我遇到的问题。
string dirs = @"%ProgramFiles%\My Company\My Product";
var project = new ManagedProject("MyProduct",
new InstallDir(dirs),
new Dir(dirs + @"\DataAPI",
new Files(@"E:\Temp\installertemp\DataAPI\*.*")));
另一种方法是使用 MSI 属性并将其设置为安装路径。
public class General
{
public static string Product = "PRODUCT";
public static string InstallLocation = "INSTALLDIRECTORY";
}
在 setup.cs
string dirs = General.InstallLocation;
然后我在安装对话框中设置此属性。
MsiRuntime.Session[General.InstallLocation] = installDir.Text;
这也不起作用,只通过 INSTALLDIRECTORY 作为路径。