У меня проблемы с моими каталогами, я хочу, чтобы мой 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 как путь.