2014-09-22 3 views
4

Я использую Wix 3.8 для создания установщика MSI для проекта Visual Studio, который я создал. Я следовал this simple tutorial, но даже с этим просто проектом Wix я получаю ошибки. Вот МойИспользование Wix для генерации MSI

Я добавил проект VS2012 в качестве ссылки на мой установщик Wix.

Вот мой Product.ws файл:

<?xml version="1.0" encoding="UTF-8"?> 
<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi' 
    xmlns:iis='http://schemas.microsoft.com/wix/IIsExtension'> 
    <Product Id="*" Name="MyProjectInstaller2" Language="1033" Version="2.0.0.0" Manufacturer="Company" UpgradeCode="7f5b63be-bdad-4cc9-b4df-b3f1648c0539"> 
     <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" /> 

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

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

    <Fragment> 
     <Directory Id="TARGETDIR" Name="SourceDir"> 
      <Directory Id="ProgramFilesFolder"> 
       <Directory Id="INSTALLFOLDER" Name="MyProjectInstaller2" /> 
      </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"> --> 
     <File Source="$(var.MyProject.TargetPath)" /> 
      <!-- </Component> --> 
     </ComponentGroup> 
    </Fragment> 
</Wix> 

Когда я компилирую это, я получаю следующее сообщение об ошибке:

The ComponentGroup element contains an unexpected child element 'File'. 

Я искал недра Интернета для решения этого очень простой проблема. Почему VS2012 не распознает элемент?

+4

Что произойдет, если вы раскомментируете элемент 'Component'? – Biffen

+0

Попробуйте [Ссылка на схему Wix: элемент ComponentGroup] (http://wixtoolset.org/documentation/manual/v3/xsd/wix/componentgroup.html) или [File Element] (http://wixtoolset.org/documentation/ пособие/v3/XSD/Wix/file.html). –

+0

Я сделал то, что сделал Джон, и столкнулся с тем же вопросом. Конечно, исправление достаточно просто, но суть в этом учебнике неверна (это, вероятно, учебник для всех, кто использует WiX в VS в первый раз!). И, по-видимому, это было по крайней мере с 2014 года, когда был задан этот вопрос. Использование новейших инструментов v3.11/VS2017. –

ответ

5

Вы должны следовать следующей иерархии: ComponentGroup -> Component -> File и т. Д. В вашем примере я предлагаю вам поместить элемент File в отдельный компонент, а затем добавить этот компонент в ComponentGroup. Попробуйте что-то вроде этого:

<Component Directory="YOUR-DIRECTORY" Guid="your-guid" Id="SomeComponent"> 
    <File Source="$(var.MyProject.TargetPath)"/> 
</Component> 
<ComponentGroup Directory="INSTALLFOLDER" Id="ProductComponents"> 
    <ComponentRef Id="SomeComponent"/> 
</ComponentGroup> 
Смежные вопросы