Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Wix CustomAction как узнать в шарповом коде куда ставится программа? / 20 сообщений из 20, страница 1 из 1
27.01.2015, 13:55
    #38864223
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Wix CustomAction как узнать в шарповом коде куда ставится программа?
Как вытащить из session путь к папке куда устанавливается программа?

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
 
  ..........
    public class CustomActions: System.Configuration.Install.Installer
    {
        [CustomAction]
         public static ActionResult Install(Session session)
        {
      
            PrintingInstaller prtInstaller = new PrintingInstaller();
            prtInstaller.Install();

            string targ = session["тут что должно быть?"];
           
            MessageBox.Show(targ);
           ......
...
Рейтинг: 0 / 0
27.01.2015, 14:02
    #38864231
Winnipuh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Wix CustomAction как узнать в шарповом коде куда ставится программа?
попробуйте так

strFilePath = session["INSTALLDIR"];
...
Рейтинг: 0 / 0
27.01.2015, 14:14
    #38864248
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Wix CustomAction как узнать в шарповом коде куда ставится программа?
Winnipuhпопробуйте так

strFilePath = session["INSTALLDIR"];

Возвращается пустая строка. В Wix XML файле должна как-то передаваться эта "INSTALLDIR"? У меня сейчас так

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
   <Binary Id="Test.RFID.Printing.Addition.Wix.CA" 
         SourceFile="\bin\Debug\Test.Printing.Addition.Wix.CA.dll" />

    <CustomAction Id="ActionInstall"
        BinaryKey="Test.Printing.Addition.Wix.CA"
        DllEntry="Install"
        Execute="immediate"
        Return="check"
        Impersonate="no"/>

 <InstallExecuteSequence>
         <Custom Action="ActionInstall" Before="InstallFinalize">
             NOT Installed
        </Custom>
        <Custom Action="ActionUninstall" Before="InstallFinalize">
           Installed AND NOT UPGRADINGPRODUCTCODE
      </Custom>
   </InstallExecuteSequence>
    
...
Рейтинг: 0 / 0
27.01.2015, 14:23
    #38864263
Winnipuh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Wix CustomAction как узнать в шарповом коде куда ставится программа?
Это все файлы инсталлера?


INSTALLDIR is not a standard property but it is just a de facto property to set the primary install location (e.g. c:\program files\My product). INSTALLDIR is used in InstallShield and other variations are INSTALLLOCATION or so.
Merge module author cannot expect users to use INSTALLDIR property to set the installing location of the merge modules.
That's why INSTALLDIR is modularized with GUID appended. (not a standard property)

However, TARGETDIR is a standard property which specifies the root destination directory for the installation. This seems that c:\program files\my product can also be the TARGETDIR, doesn't it? But usually it is not. Usually c:\ is the TARGETDIR in user installation and an another value in administrative installation.
...
Рейтинг: 0 / 0
27.01.2015, 14:41
    #38864303
Winnipuh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Wix CustomAction как узнать в шарповом коде куда ставится программа?
Кстати, можно проанализировать уже готовый msi, если есть сомнения и вопросы

superorca
...
Рейтинг: 0 / 0
27.01.2015, 18:07
    #38864672
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Wix CustomAction как узнать в шарповом коде куда ставится программа?
WinnipuhКстати, можно проанализировать уже готовый msi, если есть сомнения и вопросы

superorca

А где взять готовый MSI в котором вызывается CustomAction в который передается INSTALLDIR?
...
Рейтинг: 0 / 0
27.01.2015, 20:33
    #38864796
Cat2
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Wix CustomAction как узнать в шарповом коде куда ставится программа?
EoltКак вытащить из session путь к папке куда устанавливается программа?
А это для Вас принципиально, вытаскивать из session?
Ведь есть и другие способы
...
Рейтинг: 0 / 0
28.01.2015, 10:13
    #38865127
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Wix CustomAction как узнать в шарповом коде куда ставится программа?
Cat2EoltКак вытащить из session путь к папке куда устанавливается программа?
А это для Вас принципиально, вытаскивать из session?
Ведь есть и другие способы

Какие способы? Подскажите!
...
Рейтинг: 0 / 0
28.01.2015, 10:27
    #38865151
Winnipuh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Wix CustomAction как узнать в шарповом коде куда ставится программа?
Опишите подробности вашей задачи.

1. У вас есть уже инсталлятор, который ставит программу в какой-то фолдер и вы пытаетесь доабвить свою некую функцию?
2. Или самого инсталлятора еще нет?

если 1, то там вызывается диалог для выбора фолдера или оно молча ставится куда-то?
если 2, то я бы сделал хоть какой-то 1, а потом бы уже заморачивался вопросами, иначе вопросы сотанутся теоретичекими.
...
Рейтинг: 0 / 0
28.01.2015, 11:05
    #38865221
Sergey TSV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Wix CustomAction как узнать в шарповом коде куда ставится программа?
EoltВ Wix XML файле должна как-то передаваться эта "INSTALLDIR"?


В структуре каталогов какая переменная стоит?

Код: xml
1.
2.
3.
4.
5.
6.
    <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="ProgramFilesFolder">
        <Directory Id="ТУТ_ЧТО???" Name="Name">
        </Directory>
      </Directory>
    </Directory>
...
Рейтинг: 0 / 0
28.01.2015, 11:10
    #38865225
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Wix CustomAction как узнать в шарповом коде куда ставится программа?
Sergey TSVEoltВ Wix XML файле должна как-то передаваться эта "INSTALLDIR"?


В структуре каталогов какая переменная стоит?


TARGETDIR стоит
...
Рейтинг: 0 / 0
28.01.2015, 11:17
    #38865234
Sergey TSV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Wix CustomAction как узнать в шарповом коде куда ставится программа?
EoltTARGETDIR стоит

TARGETDIR - Это виртуальный каталог. Дальше что стоит в нем?
...
Рейтинг: 0 / 0
28.01.2015, 11:26
    #38865246
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Wix CustomAction как узнать в шарповом коде куда ставится программа?
Sergey TSVEoltTARGETDIR стоит

TARGETDIR - Это виртуальный каталог. Дальше что стоит в нем?

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
   <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="ProgramFilesFolder">
        <Directory Id="ManufacturerFolder" Name="MySoft">
          <Directory Id="INSTALLFOLDER" Name="Printing" >
            <Directory Id="Device" Name="DeviceInstall" />
            <Directory Id="Utility" Name="LabelsUtility" />
            <Directory Id="Labels" Name="DemoLabels" />
            <Directory Id="x86" Name="x86" />
          </Directory>
        </Directory>
      </Directory

>
...
Рейтинг: 0 / 0
28.01.2015, 11:29
    #38865251
Sergey TSV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Wix CustomAction как узнать в шарповом коде куда ставится программа?
Eolt,

Так а зачем session["INSTALLDIR"] пробуете?
session["INSTALLFOLDER"] не работает?
...
Рейтинг: 0 / 0
28.01.2015, 11:37
    #38865265
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Wix CustomAction как узнать в шарповом коде куда ставится программа?
Sergey TSVEolt,

Так а зачем session["INSTALLDIR"] пробуете?
session["INSTALLFOLDER"] не работает?

Cпасибо заработало! Меня сбило с толку ошибка:
Код: c#
1.
    string targ = session["[INSTALLFOLDER]"];



а на самом деле надо так:
Код: c#
1.
  string targ = session["INSTALLFOLDER"];
...
Рейтинг: 0 / 0
28.01.2015, 18:10
    #38865823
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Wix CustomAction как узнать в шарповом коде куда ставится программа?
Возник новый вопрос по Wix`у. Сделал инсталляцию, все работает. Билдится без ошибок, устанавливается правильно.
Тогда я решил разбить один файл инсталляшки на фрагменты. Чтобы было удобнее редактировать куски проекта.
Все сделал аккуратно, проект билдится, ошибок нет. Но получается только огрызок MSI файла размером 24 кбайт!
Короче пустой msi`ашник. Выдается только одно предупреждение:

авторWarning 1 The cabinet 'Project.cab' does not contain any files. If this installation contains no files, this warning can likely be safely ignored. Otherwise, please add files to the cabinet or remove it. C:\Project\Main.wxs

Очень странная ситуация. Если проект в одном файле - собирается нормально, если разбит на фрагменты - то только кусок MSI файла.
В чем может быть проблема?

Вот у человека похожая ситуация: http://stackoverflow.com/questions/3453529/splitting-up-a-wix-file
Только не пойму что он предпринял...
...
Рейтинг: 0 / 0
28.01.2015, 23:08
    #38866033
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Wix CustomAction как узнать в шарповом коде куда ставится программа?
Eolt,

скорее всего рядом или где то еще валяются Cab файлы, которые не удалось засунуть в MSI, могу ошибаться, но нельзя 2 cab файла засунуть в 1 msi
...
Рейтинг: 0 / 0
29.01.2015, 09:22
    #38866230
Sergey TSV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Wix CustomAction как узнать в шарповом коде куда ставится программа?
Фрагменты считаются самодостаточными единицами и не включаются в результирующий msi самостоятельно. Для их подключения необходимо использовать ссылки типа ComponentRef, FeatureRef, DirectoryRef и др.

В основном файле (обычно Product.wxs) нужно указать ссылки на элеметы в других фрагментах, например:

Код: xml
1.
2.
3.
4.
5.
6.
7.
<Feature Id="…"…>
  <Feature Id="…">
    <ComponentRef Id="…"/>
    <ComponentRef Id="…"/>
    <ComponentRef Id="…"/>
  </Feature>
</Feature>
...
Рейтинг: 0 / 0
29.01.2015, 10:37
    #38866330
Eolt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Wix CustomAction как узнать в шарповом коде куда ставится программа?
Sergey TSV,

Какой треш, если у меня там 200 компонентов, мне надо на каждый ComponentRef указать?
...
Рейтинг: 0 / 0
29.01.2015, 10:55
    #38866362
Sergey TSV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Wix CustomAction как узнать в шарповом коде куда ставится программа?
Eolt,

Во фрагменте можно объединить их в группу ComponentGroup и подключать через ComponentGroupRef.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Wix CustomAction как узнать в шарповом коде куда ставится программа? / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]