wix
2013-02-22 105 views 1 likes 
1

我正在開發一個wix代碼來創建msi。我已經添加的所有組件和庫我威克斯project.But,我不能夠創造一個MSI我need.Please幫我out.Here是我的代碼,使用wix創建msi

<?xml version='1.0' encoding='UTF-8'?> 
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> 

<Product Name='SmartViewer' 
      Id="*" 
      Language='1033' 
      Codepage='1252' 
      Version='1.0.0' 
      UpgradeCode='9C5E4073-EFDE-419B-935D-CE2632BC560E'> 

    <Package Keywords='Installer,MSI' 
      InstallerVersion='100' 
      Languages='1031' 
      Compressed='yes' 
      SummaryCodepage='1252' /> 

    <Media Id="1" Cabinet="myapp.cab" EmbedCab="yes" /> 

    <Directory Id="TARGETDIR" Name="SourceDir"> 
     <Directory Id="ProgramFilesFolder"> 
      <Directory Id="MyProgramDir" Name="myproject" > 
       <Directory Id="INSTALLFOLDER" Name="proj1" /> 
      </Directory> 
     </Directory> 

    <DirectoryRef Id="INSTALLFOLDER"> 
     <Component Id='MainExecutable' Guid='*'> 
      <File Id='ExecutableFile' Name='mv.exe' DiskId='1' Source='mv.exe' KeyPath='yes'/> 
     </Component> 
     <Directory Id="imageformats" Name="imageformats"> 
      <Component Id='jpeg4Library' Guid='*'> 
       <File Id='jpeg4' Name='jpeg4.dll' DiskId='1' Source='jpeg4.dll' KeyPath='yes' /> 
      </Component> 
     </Directory> 

     <Component Id='Network4Library' Guid='*'> 
      <File Id='Network4' Name='Network4.dll' DiskId='1' Source='Network4.dll' KeyPath='yes' /> 
     </Component> 

     <Component Id='Multimedia4Library' Guid='*'> 
      <File Id='Multimedia4' Name='Multimedia4.dll' DiskId='1' Source='Multimedia4.dll' KeyPath='yes' /> 
     </Component> 

     <Component Id='QtGui4Library' Guid='*'> 
      <File Id='Gui4' Name='Gui4.dll' DiskId='1' Source='Gui4.dll' KeyPath='yes' /> 
     </Component> 

     <Component Id='Designer4Library' Guid='*'> 
      <File Id='Designer4' Name='Designer4.dll' DiskId='1' Source='Designer4.dll' KeyPath='yes' /> 
     </Component> 

     <Component Id='Core4Library' Guid='*'> 
      <File Id='Core4' Name='Core4.dll' DiskId='1' Source='Core4.dll' KeyPath='yes' /> 
     </Component> 


     <Component Id='libmfxsw32Library' Guid='*'> 
      <File Id='libmfxsw32' Name='libmfxsw32.dll' DiskId='1' Source='libmfxsw32.dll' KeyPath='yes' /> 
     </Component> 

     <Component Id='libiomp5mdLibrary' Guid='*'> 
      <File Id='libiomp5md' Name='libiomp5md.dll' DiskId='1' Source='libiomp5md.dll' KeyPath='yes' /> 
     </Component> 

     <Component Id='ippcore7.1Library' Guid='*'> 
      <File Id='ippcore7.1' Name='ippcore-7.1.dll' DiskId='1' Source='ippcore-7.1.dll' KeyPath='yes' /> 
     </Component> 

     <Component Id='ippccw77.1Library' Guid='*'> 
      <File Id='ippccw77.1' Name='ippccw7-7.1.dll' DiskId='1' Source='ippccw7-7.1.dll' KeyPath='yes' /> 
     </Component> 

     <Component Id='ippccv87.1Library' Guid='*'> 
      <File Id='ippccv87.1' Name='ippccv8-7.1.dll' DiskId='1' Source='ippccv8-7.1.dll' KeyPath='yes' /> 
     </Component> 

     <Component Id='ippccs87.1Library' Guid='*'> 
      <File Id='ippccs87.1' Name='ippccs8-7.1.dll' DiskId='1' Source='ippccs8-7.1.dll' KeyPath='yes' /> 
     </Component> 

     <Component Id='ippccp87.1Library' Guid='*'> 
      <File Id='ippccp87.1' Name='ippccp8-7.1.dll' DiskId='1' Source='ippccp8-7.1.dll' KeyPath='yes' /> 
     </Component> 

     <Component Id='ippccg97.1Library' Guid='*'> 
      <File Id='ippccg97.1' Name='ippccg9-7.1.dll' DiskId='1' Source='ippccg9-7.1.dll' KeyPath='yes' /> 
     </Component> 

     <Component Id='ippcc7.1Library' Guid='*'> 
      <File Id='ippcc7.1' Name='ippcc-7.1.dll' DiskId='1' Source='ippcc-7.1.dll' KeyPath='yes' /> 
     </Component> 

     <Component Id='EULALibrary' Guid='*'> 
      <File Id='EULA' Name='EULA.rtf' DiskId='1' Source='EULA.rtf' KeyPath='yes' /> 
     </Component> 
    </DirectoryRef> 


    <Directory Id="ProgramFilesFolder"> 
     <Directory Id="MyProgramDir" Name="myproj" > 
       <Directory Id="INSTALLFOLDER" Name="proj1"/
        <Component Id="TextFileComponent" Guid="*"> 
         <File Id="TextFile" Name="Logs.txt" DiskId="1" 
           Source="Logs.txt" KeyPath="yes" /> 
        </Component> 
     </Directory> 
    </Directory> 

    <Directory Id="DesktopFolder"> 
     <Component Id="ExecutableFileShortcutComponent" Guid="*"> 
      <Shortcut Id="ExecutableFileShortcut" Name="smart viewer" 
        Description="Shortcut To Executable File" 
        Target="[INSTALLFOLDER]mv.exe" /> 
    </Directory> 

    <Directory Id="ProgramMenuFolder"> 
     <Directory Id="MyProgramDir" Name="myproj"> 
      <Component Id="ExecutableFileShortcutComponent" Guid="*"> 
       <Shortcut Id="ExecutableFileShortcut" Name="smart viewer" 
         Description="Shortcut To Executable File" 
         Target="[INSTALLFOLDER]mv.exe" /> 

     </Component> 
    </Directory> 

    </Product> 
</Wix> 

的組件沒有得到DLL路徑。我嘗試傳遞路徑源文件ID,仍然找到相同的問題。向前看一個好的建議。

+0

您得到了什麼錯誤?此外,我看到你錯過了你需要安裝文件的功能標籤.. :) – 2013-02-22 09:33:26

+0

組件沒有得到添加。它沒有找到文件ID中的源路徑。 – Aramanethota 2013-02-22 11:18:45

+0

指定完整路徑時它仍未找到它們嗎? – 2013-02-22 12:16:34

回答

1

您需要參照文件的完整路徑:

<File Id="Microsoft.Practices.Unity" 
     Name="jpeg4.dll" 
     Source="$(var.BuildOutputDir)\jpeg4.dll" /> 

其中$(var.BuildOutputDir)是一個文件夾的完整路徑。如果這些文件在另一個引用項目的輸出中,那麼您可以使用$(var.OtherProject.TargetDir)

+0

非常感謝。 – Aramanethota 2013-02-23 04:53:57

+0

如果這是正確的答案,請將其標記爲讓其他人可以輕鬆看到它,並獲得認可! ;) – 2013-02-23 11:36:20

0

您的文件不包含有效的XML。以下片段已損壞。

<Directory Id="ProgramFilesFolder"> 
    <Directory Id="MyProgramDir" Name="myproj" > 
      <Directory Id="INSTALLFOLDER" Name="proj1"/
       <Component Id="TextFileComponent" Guid="*"> 
        <File Id="TextFile" Name="Logs.txt" DiskId="1" 
          Source="Logs.txt" KeyPath="yes" /> 
       </Component> 
    </Directory> 
</Directory> 

  <Directory Id="INSTALLFOLDER" Name="proj1"/

應該

  <Directory Id="INSTALLFOLDER" Name="proj1" > 

有一個</Directory>失蹤。您還應該在兩個位置添加</Component>。嘗試加載.WXS文件時指向無效XML的WiXEdit。

此外,您應該添加一個<feature>

+0

這是錯字! – Aramanethota 2013-02-22 11:17:39

+0

你輸入了問題中的所有代碼?你是英雄!請記住,還有更多不平衡的XML節點。 – harper 2013-02-22 12:03:23

相關問題