Создание каталога динамической установки в WiXSharp - PullRequest
0 голосов
/ 25 октября 2018

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

1 Ответ

0 голосов
/ 25 октября 2018

После бесчисленных часов впустую решение было на самом деле очень простым и понятным для меня любезными людьми по адресу Wixsharp .

Просто переместите конечную скобку instalDir, чтобы включить любые дочерние каталоги и их файлы.

 new InstallDir(dirs,        
   new Dir("DataAPI",
       new Files(@"E:\Temp\installertemp\DataAPI\*.*")));  
...