2013-04-25 2 views
3

Мы хотели бы открыть блокнот в конце установки. Поэтому я скопировал файл readme.txt и разместил его под некоторым локальным диском во время установки, затем попытался открыть его из этого места. Но он дает «Проблема не может найти путь, указанный». Однако он работал, когда я дал локальный жестко закодированный путь как «d: \ readme.txt».Открыть файл readme.txt в конце установки не удалось в WiX

<Directory Id='ProgramFilesFolder' Name='PFiles'> 
    <Directory Id='INSTALLDIR' Name='SimpleMvvmToolkit_2012'>   
    </Directory> 
</Directory> 


<Property Id='NOTEPAD'>Notepad.exe</Property> 
<CustomAction Id='LaunchFile' Property='NOTEPAD' ExeCommand='[INSTALLDIR]Readme.txt' 
       Return='asyncNoWait' /> 

<InstallExecuteSequence> 
    <Custom Action='LaunchFile' After='InstallFinalize'>NOT Installed</Custom> 
</InstallExecuteSequence> 

Где-то я ошибся, но не смог точно узнать.

ответ

7

Существует тема в WiX SDK, называемая How To: Run the Installed Application After Setup, которая может быть использована для запуска readme.txt, если вы только хотели это сделать.

Если вы действительно не хотите этого пользователя, я бы порекомендовал использовать настраиваемое действие WixShellExec, чтобы запустить readme.txt вместо того, чтобы пытаться запустить Notepad.exe. Таким образом, readme.txt откроется в редакторе .txt по умолчанию пользователя. Вы можете это сделать:

<Property Id="WixShellExecTarget" Value="[#FileIdForReadMe.txt]" /> 
<CustomAction Id="LaunchFile" 
    BinaryKey="WixCA" 
    DllEntry="WixShellExec" 
    Impersonate="yes" /> 

<InstallExecuteSequence> 
    <Custom Action='LaunchFile' After='InstallFinalize'>NOT Installed</Custom> 
</InstallExecuteSequence> 
+1

Спасибо, грабли. Ваши ответы очень помогли мне улучшить мои действия с установщиком. Я закончил ранее с помощью вашего руководства. WiX - действительно замечательный и мощный инструмент для создания установщика. Отличная работа...!! – Smaug

+0

Это запускает приложение до того, как на финише щелкнули FYI. –

+0

Выполняет ли это пользовательское действие проверку любой версии? Я пробовал это решение, но оно работает только в том случае, если установленный файл является одним и тем же файлом, а затем в msi - я делаю что-то неправильно? Предыстория: exe для выполнения является общим компонентом, поэтому exe может быть более новым, чем установленный продукт. – BudBrot

Смежные вопросы