Пытаюсь сделать установщик wix. для веб-приложения.
Ниже приведен мой файл wsx v3.11
<?xml version = "1.0" encoding = "UTF-8"?>
<Wix xmlns = "http://schemas.microsoft.com/wix/2006/wi">
<Product Id = "Guid" Name = "TestInstaller" Language = "1033" Version = "1.0.0.0" Manufacturer = "CompanyName" UpgradeCode = "Guid1">
<Package InstallerVersion = "200" Compressed = "yes" InstallScope = "perMachine" Platform = "x64" />
<MajorUpgrade DowngradeErrorMessage = "A newer version of [ProductName] is already installed." />
<MediaTemplate EmbedCab = "yes" />
<PropertyRef Id = "WIX_IS_NETFRAMEWORK_462_OR_LATER_INSTALLED"/>
<Condition Message='This setup requires the .NET Framework 4.7 client profile installed.'>
<![CDATA[Installed OR WIX_IS_NETFRAMEWORK_462_OR_LATER_INSTALLED]]>
</Condition>
<Feature Id = "Complete" Title = "TestInstaller" Description = "TestInstaller" Level = "1" ConfigurableDirectory='INSTALLFOLDER'>
<ComponentGroupRef Id = "ProductComponents" />
<ComponentGroupRef Id = "ProductBinComponents" />
</Feature>
<UIRef Id = "WixUI_Mondo" />
<UIRef Id = "WixUI_ErrorProgressText" />
</Product>
<Fragment>
<Directory Id = "TARGETDIR" Name = "SourceDir">
<Directory Id = "INSTALLFOLDER" Name = "Test Installer" >
<Directory Id = "INSTALLBINFOLDER" Name = "bin">
</Directory>
</Directory>
</Directory>
</Fragment>
<Fragment>
<ComponentGroup Id = "ProductComponents" Directory = "INSTALLFOLDER">
<Component Id = "ProductComponent" Win64 = "yes" Guid = "*">
<File Source = "C:\Temp\Publish\Web.config" />
<File Source = "C:\Temp\Publish\NLog.config"/>
<File Source = "C:\Temp\Publish\Global.asax"/>
</Component>
</ComponentGroup>
<ComponentGroup Id = "ProductBinComponents" Directory = "INSTALLBINFOLDER">
<Component Id = "ProductBinComponent" Win64 = "yes" Guid = "*">
<File Source = "C:\Temp\Publish\bin\Antlr3.Runtime.dll"/>
<File Source = "C:\Temp\Publish\bin\Antlr3.Runtime.pdb"/>
</Component>
</ComponentGroup>
</Fragment>
</Wix>
Моя проблема здесь в том, что я не знаю, что означает это сообщение об ошибке, и не знаю, как это исправить.
Either 'Microsoft.Tools.WindowsInstallerXml.AssemblyDefaultWixExtensionAttribute' was not defined in the assembly or the type defined in extension '..........\Program Files (x86)\WiX Toolset v3.11\bin\WixUIExtension.dll' could not be loaded.
@ SteinÅsmul Спасибо за письмо. Если я закомментирую обе строки UIRef, он компилируется нормально. Я добавил dll для WixUIExtension. Да, я работаю в визуальной студии. И да, у меня установлен WiX. Я посмотрю на твою ссылку
1. Файл лицензии RTF: сначала убедитесь, что вы создали свой собственный файл лицензии RTF (с помощью WordPad или аналогичного), а затем укажите использовать этот файл RTF в своем источнике WiX следующим образом:
<!-- Shown for context (one of several possible dialog sets): -->
<UIRef Id = "WixUI_Mondo" />
<!-- The crucial variable that must be defined (for this dialog set): -->
<WixVariable Id = "WixUILicenseRtf" Value = "TestLicenseAgreement.rtf" />
For more context and details, please see this example of what minimal tweaks are needed to a fresh WiX project to get it to compile (see inline comments in WiX markup towards bottom).
2. Wix.dll: Возможно, вы включили ссылку непосредственно на Wix.dll
в дополнение к WixUIExtension
и WixNtFxExtension
- оба из которых вам нужно оставить включенными.
So in other words: remove the project reference to
Wix.dll
and try to recompile.
Если это не сработает, удалите все ссылки и повторно добавьте только WixUIExtension
и WixNtFxExtension
.
Некоторые предложения и ссылки:
*.pdb
из установки, если он вам не нужен для отладки.Я никогда не добавлял никаких ссылок, кроме WixUIExtension и WixNtFxExtension. И я несколько раз пытался удалить и добавить их снова, чтобы посмотреть, решит ли это проблему. Я посмотрю по вашим ссылкам. и другие предложения. Спасибо.
ваша ссылка из вашего комментария заставила меня работать. проблема заключалась просто в отсутствии лицензионного RTF-файла.
О, это было удивительно. Я лучше обновлю этот ответ, чтобы указать это явно. Я видел ту же ошибку при добавлении Wix.dll
, поэтому оставлю это.
Просто чтобы скрыть очевидное: - Установлен ли WiX на машине? (быстро забываешь, если переключаешь компьютеры). - Если закомментировать обе строки
UIRef
, компилируется ли он? - Вы добавили ссылку на проект в WixUIExtension.dll? (если вы находитесь в Visual Studio). Возможно, вы увидите мой минимальные настройки для нового проекта шаблона WiX, чтобы он скомпилировал здесь (см. Встроенные комментарии в разметке WiX внизу).