我正在尝试在Visual Studio 2010中构建我的WiX项目,但每次构建时,都会收到以下错误消息:
在“片段:”
部分中未解决对符号“Media1”的引用“产品{67DC7AE3-030F-4A24-AC3F-7AE7D0C32D07}”一节中未解决的对“Media1”的引用
该项目包括一个Product.wxs文件和一个热生成的wxs someComponents.wxs(我的片段)文件。我在Product.wxs中引用了热量生成的wxs文件中的组件。我收到错误的部分如下:
Product.wxs文件
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="DesktopFolder" Name="Desktop"/>
<Directory Id="ProgramFilesFolder">
<Directory Id="Aspex" Name="Company">
<Directory Id="INSTALLFOLDER" Name="My App" >
<Component Id="appFromSomeComponent">
<File Id="AppFromSomeComponentexe"
Name="AppFromSomeComponent.exe"
Source="$(var.AppFromSomeComponentBin)\AppFromSomeComponent.exe" />
<RemoveFile Id="PurgeAppFolder" Name="*.*" On="uninstall" />
</Component>
</Directory>
</Directory>
</Directory>
</Directory>
<!-- Shortcuts in the start menu-->
<DirectoryRef Id="ApplicationProgramsFolder2">
<Component Id="StartMenuMyApp">
<Shortcut Id="MyAPP" Directory="ApplicationProgramsFolder2"
Name="My App"
WorkingDirectory="INSTALLFOLDER"
Target="[INSTALLFOLDER]appFromSomeComponent.exe"/>
<RemoveFolder Id="ApplicationProgramsFolder2" On="uninstall"/>
<RegistryValue Root="HKCU"
Key="Software\Microsoft\appFromSomeComponent"
Name="installed"
Type="integer"
Value="1"
KeyPath="yes"/>
</Component>
<Component Id="UninstallStartMenuShortcut">
<Shortcut Id="UninstallProduct"
Name="Uninstall My App"
Target="[SystemFolder]msiexec.exe"
Arguments="/x [ProductCode]"
Description="Uninstall My App" />
<RemoveFolder Id="ApplicationProgramsFolder4" On="uninstall"/>
<RegistryValue Root="HKCU"
Key="Software\Microsoft\MyAppUninstall"
Name="installed"
Type="integer"
Value="1"
KeyPath="yes"/>
</Component>
</DirectoryRef>
someComponents.wxs
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<DirectoryRef Id="INSTALLFOLDER">
<Component Id="cmpEFCBE60AE731F2F72E1E191A31A5C932"
Guid="{41805DA3-9F2A-45D3-82F7-46357FDA91F1}">
<File Id="filE84D9AAD661C2BCD945C740C9DF8F5EE"
KeyPath="yes"
Source="$(var.AppFromSomeComponentBin)\AppFromSomeComponent.exe" />
</Component>
<Component Id="cmpA7CD6B191FCDC253D5418CC203735124"
Guid="{1B1B6D45-B2A3-4D1B-AD1C-645D9D8AEE6E}">
<File Id="fil042C8008BCA6DCC4254D61C306D2DA18"
KeyPath="yes"
Source="$(var.AppFromSomeComponentBin)\AppFromSomeComponent.exe.config" />
</Component>
<Component Id="cmp6A4D0A31B68BE7D2215111EE5B24D78A"
Guid="{BE1094E1-2658-4FB7-B3BE-172C7D90D2C5}">
<File Id="fil5038053B907D45250FC4F7FB1AE3E3C0"
KeyPath="yes"
Source="$(var.AppFromSomeComponentBin)\SomeDll.dll" />
</Component>
</DirectoryRef>
</Fragment>
<Fragment>
<ComponentGroup Id="AppFromSomeComponentBin">
<ComponentRef Id="cmpEFCBE60AE731F2F72E1E191A31A5C932" />
<ComponentRef Id="cmpA7CD6B191FCDC253D5418CC203735124" />
<ComponentRef Id="cmp6A4D0A31B68BE7D2215111EE5B24D78A" />
</ComponentGroup>
</Fragment>
</Wix>
如果有人可以指出我正确的方向来解决这个问题 - 或者指出我缺少的东西 - 那将非常感激!如果需要任何其他信息来帮助回答这个问题,请告诉我,我尽量提供尽可能多的信息。
答案 0 :(得分:14)
错误消息正在尝试说明缺少Media
个Id='1'
元素。通常,您会在Media
元素下找到Product
元素。你只需要添加如下内容:
<Media Id='1' />
然后,您可以将其他属性添加到Media
元素,以将文件压缩到文件柜中。使用更高版本的WiX工具集,您可以使用MediaTemplate
元素而不是Media
元素来创建多个不超过特定大小的机柜。如果您最终获得大量文件,那就太棒了。