wylbur Ответов: 1

Нужна помощь с приложением WIX for WPF.


Привет,

До сегодняшнего дня у меня не было никакого опыта работы с WIX, и я вижу, что это очень сложная система.
приложение, где есть чему поучиться. То, что я пытаюсь сделать, очень просто,
и я почти получил то, что хотел, за исключением нескольких коряг.

Я пытаюсь создать установочный пакет WIX для своего приложения WPF (native).

У меня есть исполняемый файл вместе с библиотеками DLL для загрузки приложения.

Он предоставляет пользователю возможность выбора места установки приложения.

До сих пор мне это удавалось.


У меня возникли проблемы с получением папки с некоторыми текстовыми файлами для загрузки
в пакет, и пусть установка создаст папку с файлами.

Я также не понимаю, как поместить значок рабочего стола на рабочий стол.

Кто-то, кто имеет больше опыта работы с WIX, вероятно, мог бы поставить меня прямо с
несколько строк кода.

Что я уже пробовал:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
	<Product Id="*" Name="WPF_App_01" Language="1033" Version="1.0.0.0" Manufacturer="A_Soft" UpgradeCode="8582f421-5196-47d2-9c0a-5a5150dfa1fe">
		<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />

		<MajorUpgrade DowngradeErrorMessage="A newer version of WPF_App_01 is already installed." />
		<MediaTemplate />

		<Feature Id="ProductFeature" Title="WPF_App_01" Level="1">
			<ComponentGroupRef Id="ProductComponents" />
		</Feature>

        <Property Id="WIXUI_INSTALLDIR" Value="INSTALLFOLDER" ></Property>
        <UIRef Id="WixUI_InstallDir"/>
    </Product>

	<Fragment>
		<Directory Id="TARGETDIR" Name="SourceDir">
			<Directory Id="ProgramFilesFolder">
				<Directory Id="INSTALLFOLDER" Name="WPF_App_01">
    				<Directory Id="DocFolder" Name="WPF_App_01_DOC"/>
    			</Directory>
			</Directory>
		</Directory>
	</Fragment>

	<Fragment>
		<ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
			<!-- TODO: Remove the comments around this Component element and the ComponentRef below in order to add resources to this installer. -->
			 <Component Id="ProductComponent_01"  Guid="*"> 
				 <!--TODO: Insert files, registry keys, and other resources here.-->
                 <File Id="Install_WPF_App_01.exe"

                  Source="J:\Software_Development_02\WPF_App_01\bin\Release\WPF_App_01.exe"></File>
			 </Component> 
      
            <Component Id="ProductComponent_1" Guid="*">
                <File Id="BouncyCastle.Crypto.dll"

                        Source="J:\Software_Development_02\WPF_App_01\bin\Release\BouncyCastle.Crypto.dll"></File>
            </Component> 
            <Component Id="ProductComponent_2" Guid="*">
                <File Id="CSI_LIB_01.dll"

                        Source="J:\Software_Development_02\WPF_App_01\bin\Release\CSI_LIB_01.dll"></File>
            </Component>
            <Component Id="ProductComponent_3" Guid="*">
                <File Id="D_LIB_01.dll"

                        Source="J:\Software_Development_02\WPF_App_01\bin\Release\D_LIB_01.dll"></File>
            </Component> 

            <Component Id="ProductComponent_icon" Guid="*">
                <File Id="The_Icon_01.ico" Source="J:\Software_Development_02\WPF_App_01\The_Icon_01.ico"></File>
            </Component> 
       </ComponentGroup>
	
    </Fragment>
	
    <Fragment>


    <!-- This is where I'm going wrong. -->

    <ComponentGroup Id="ProductComponents_DOC" Directory="DocFolder">
			 <Component Id="ProductComponent_401" Guid="*"> 
                 <File Id="Demo_Projects.txt" KeyPath="yes"

                  Source="J:\Software_Development_02\WPF_App_01\bin\Release\aaa_Documentation\Demo_Projects.txt"></File>
			 </Component> 
			 <Component Id="ProductComponent_402" Guid="*"> 
                 <File Id="WPF_App_01_DOC.txt" KeyPath="yes"

                  Source="J:\Software_Development_02\WPF_App_01\bin\Release\aaa_Documentation\WPF_App_01_DOC.txt"></File>
			 </Component> 
       </ComponentGroup>
	</Fragment>

    <Fragment>
        <Icon Id="ProductComponent_icon" SourceFile="J:\Software_Development_02\WPF_App_01\The_Icon_01.ico"/>
    </Fragment>

</Wix>

[no name]

https://www.firegiant.com/wix/
http://www.codeproject.com/Tips/105638/A-quick-introduction-Create-an-MSI-installer-with
и вы можете попробовать https://wixsharp.codeplex.com/wikipage?title=Building%20MSI%20with%20WixSharp%20%E2%80%93%20Step%20by%20step%20tutorial

wylbur

Спасибо!

Кстати: как мне отметить это как ответ?

[no name]

Вы не. Это комментарий, а не ответ.

1 Ответов

Рейтинг:
9

johannesnestler

просто сделайте базовый учебник по firegiant.com, они также показывают, как делать записи в меню программы и размещать значки на рабочем столе -
Если вы создали MSI-пакеты раньше, то должно быть вполне логично, как работает wix, если нет, то, возможно, немного трудно понять, почему они делают то, что делают....
Но возможно ли, что вы используете wix и не видели учебник? Я бы посоветовал в следующий раз, когда вы будете изучать новую технологию, не пытайтесь быть "продуктивными" в первый день - дайте время, чтобы сделать пример и понять концепции...


wylbur

Привет Йоханнес Слтлер

Я прошел через учебник по firegiant, и мне трудно следовать ему.

Кстати: я никогда не создавал пакет MSI, поэтому начинаю с самого начала.

Я знаю, как трудно писать учебники для программного обеспечения, которое автор/разработчик
писали сами, так как они очень хорошо знают свое произведение, и
не всегда хорошо объясняют вещи так, чтобы люди, которые не имеют ни малейшего понятия
про их продукт можно понять.

Я сам виноват в этом. :-/

Есть несколько лучших примеров WIX на CodeProject, и они должны использовать их в качестве
отправная точка.

У меня есть такой же пост на MSDN, и кто-то указал на мою проблему:

https://social.msdn.microsoft.com/Forums/en-US/8ae58994-c851-48aa-8960-9a6a4996bbee/need-help-with-wix-installation-for-wpf-app?forum=wpf

СПАСИБО!

johannesnestler

вы абсолютно правы насчет учебников... ;)
Но хорошо, что вы смогли решить свою проблему. Я работаю с созданными Wix установщиками уже некоторое время, многие вещи нуждались в некоторой возне и чтении примеров снова и снова - но в большинстве случаев только один раз - если вы получите, как это сделать, это кажется легким позже (как запустить службы, многоязычная поддержка, работа с реестром и пользовательскими диалогами, загрузчики,...) Для меня главная причина использовать его (кроме того, что он бесплатный) - это поддержка управления версиями (из-за простых текстовых файлов). Двоичные установщики, где вы просто видите, что он изменился (в системе управления версиями)...