2013-08-12 4 views
0

Я создал библиотеку в WiX с одним ComponentGroup, компонентный и файл, таким образом:ComponentGroupRef не работает с библиотекой WiX

<?xml version="1.0" encoding="UTF-8"?> 
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> 
<Fragment> 
    <ComponentGroup Id="MyComponentGroup" Directory="WindowsFolder"> 
    <Component Id="MyComponent" Guid="..."> 
     <File Id="MyFile" Source="file.txt" KeyPath="yes" /> 
    </Component> 
    </ComponentGroup> 
</Fragment> 
</Wix> 

Затем я создал проект WiX, добавил ссылку на эту библиотеку (как проект ссылка), и я использую этот код:

<?xml version="1.0" encoding="UTF-8"?> 
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> 
<Product Id="*" Name="My Product" Language="1033" 
     Version="1.0.0.0" Manufacturer="Myself" 
     UpgradeCode="xxxxx"> 
    <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" /> 

    <Feature Id="Feature_Product" Title="Main Product" 
     Level="1" Absent="disallow" Description="Core functionality."> 
    <ComponentGroupRef Id="MyComponentGroup" /> 
    </Feature> 
</Product> 

<Fragment> 
    <Directory Id="TARGETDIR" Name="SourceDir"> 
    <Directory Id="WindowsFolder" /> 
    </Directory> 
</Fragment> 
</Wix> 

Но я получаю ошибку Unresolved reference. Есть что-то, чего я не хватает? Или библиотеки работают только с пользовательским интерфейсом, а не с файлами?

EDIT:

Я добавил полный код.

И это работает, если я использую FeatureRef и я двигаю Feature в библиотеку, но я хотел бы сохранить эту функцию в главном проекте и только имею Component в библиотеке.

+0

Это будет здорово, если вы разместите, как вы строите свою библиотеку и ваш основной проект –

ответ

0

Вы не отправили всю свою ошибку, но ошибка я получаю при использовании вашего примера:

Нерешенной ссылки на символ «Медиа: 1» в разделе «Фрагмент:»

Неразрешенная ссылка - это отсутствующий элемент мультимедиа; Файл должен храниться в шкафу, и по умолчанию он равен File/@DiskId="1", поэтому он ищет «Медиа: 1». Вы должны сообщить WiX, где хранить файлы установки. Если вы используете WiX 3.7, добавьте это в ваш <Package> элемент:

<MediaTemplate EmbedCab="yes" /> 

Если вы используете более раннюю версию:

<Media Id="1" Cabinet="Cab1.cab" EmbedCab="yes" /> 
+0

Элемент Media существует в моем пакете, но не в моей отрывке. Реальная проблема заключалась в отсутствии ссылки на структуру каталогов. – Marlos