2010-06-29 9 views
1

J'essaye de créer un programme d'installation pour mon projet en utilisant NAnt. c'est comment mon script de compilation ressembleCréation de msi en utilisant nant et wix

<?xml version="1.0"?> 
<project name="pleats" default="build-release" xmlns="http://nant.sf.net/release/0.85/nant.xsd"> 

<target name="build-release" depends="clean, make-builddir, build, release-properties, copy-to-release, build-installer" /> 
<property name="tools.dir" value="${path::get-full-path('tools')}" /> 
<property name="src.dir" value="${path::get-full-path('src')}" /> 
<property name="build.dir" value="D:\Subrat\Projects\WPF\WpfApplicationNAntTest\WpfApplicationNAntTest\bin\Debug" /> 
<target name="clean" description="Delete automated build artifacts"> 
    <delete dir="${build.dir}" if="${directory::exists(build.dir)}" failonerror="false"/> 
</target> 
<target name="make-builddir" description="Create build dir and build report dir">  
    <mkdir dir="${build.dir}" unless="${directory::exists(build.dir)}" /> 
</target> 
<target name="release-properties">  
    <property name="release.dir" value="D:\Subrat\Projects\WPF\WpfApplicationNAntTest\WpfApplicationNAntTest\bin\Release"/> 
    <property name="wix.dir" value="D:\Subrat\Projects\WPF\WpfApplicationNAntTest\Lib\wix"/> 
</target> 
<target name="copy-to-release">  
    <mkdir dir="${release.dir}" failonerror="false"/> 
    <copy todir="${release.dir}">   
     <fileset basedir="${src.dir}">    
      <include name="*" /> 
     </fileset>   
    </copy>  
</target> 
<target name="build"> 
    <loadtasks assembly="D:\Subrat\Projects\WPF\WpfApplicationNAntTest\Lib\nantcontrib-0.85\bin\NAnt.Contrib.Tasks.dll"/> 
    <msbuild project="D:\Subrat\Projects\WPF\WpfApplicationNAntTest\WpfApplicationNAntTest.sln"> 
     <property name="configuration" value="debug" /> 
     <property name="Platform" value="any cpu" />  
    </msbuild> 
</target> 
<target name="build-installer">  
    <!-- for wix preprocessor so that the location of pleats files are propagated into the wxs --> 
    <setenv name="pleats.dir" value="${release.dir}"/> 
    <delete>    
     <fileset>   
      <include name="${wix.dir}/*.wixobj"/> 
    </fileset>   
    </delete>  
    <exec program="${wix.dir}\candle.exe" workingdir=".\wix" commandline="SampleFirst.wxs " /> 
    <exec program="${wix.dir}\light.exe" workingdir=".\wix" commandline="-ext WixUIExtension -cultures:en-us SampleFirst.wixobj -out ${release.dir}\pleats.msi"/> 
</target> 
</project> 

J'utilise le fichier d'exemple wxs je suis arrivé dans le tutoriel Wix.

<?xml version='1.0' encoding='windows-1252'?> 
<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'> 
    <Product Name='Foobar 1.0' Id='C2B662FC-82AA-11DF-93D4-6B70DFD72085' UpgradeCode='CE3E5F1C-82AA-11DF-A42F-7170DFD72085' 
Language='1033' Codepage='1252' Version='1.0.0' Manufacturer='Acme Ltd.'> 
<Package Id='*' Keywords='Installer' Description="Acme's Foobar 1.0 Installer" 
    Comments='Foobar is a registered trademark of Acme Ltd.' Manufacturer='Acme Ltd.' 
    InstallerVersion='100' Languages='1033' Compressed='yes' SummaryCodepage='1252' /> 

<Media Id='1' Cabinet='Sample.cab' EmbedCab='yes' DiskPrompt="CD-ROM #1" /> 
<Property Id='DiskPrompt' Value="Acme's Foobar 1.0 Installation [1]" /> 

<Directory Id='TARGETDIR' Name='SourceDir'> 
    <Directory Id='ProgramFilesFolder' Name='PFiles'> 
    <Directory Id='Acme' Name='Acme'> 
     <Directory Id='INSTALLDIR' Name='Foobar 1.0'> 

     <Component Id='MainExecutable' Guid='DD4C895C-82AA-11DF-941D-8370DFD72085'> 
      <File Id='FoobarEXE' Name='WpfApplicationNAntTest.exe' DiskId='1' Source='D:\Subrat\Projects\WPF\WpfApplicationNAntTest\WpfApplicationNAntTest\bin\Debug\WpfApplicationNAntTest.exe' KeyPath='yes'> 
      <Shortcut Id="startmenuFoobar10" Directory="ProgramMenuDir" Name="Foobar 1.0" WorkingDirectory='INSTALLDIR' Icon="WpfApplicationNAntTest.exe" IconIndex="0" Advertise="yes" /> 
      <Shortcut Id="desktopFoobar10" Directory="DesktopFolder" Name="Foobar 1.0" WorkingDirectory='INSTALLDIR' Icon="WpfApplicationNAntTest.exe" IconIndex="0" Advertise="yes" /> 
      </File> 
     </Component> 

     <!--<Component Id='HelperLibrary' Guid='YOURGUID-6BE3-460D-A14F-75658D16550B'> 
      <File Id='HelperDLL' Name='Helper.dll' DiskId='1' Source='Helper.dll' KeyPath='yes' /> 
     </Component> 

     <Component Id='Manual' Guid='YOURGUID-574D-4A9A-A266-5B5EC2C022A4'> 
      <File Id='Manual' Name='Manual.pdf' DiskId='1' Source='Manual.pdf' KeyPath='yes'> 
      <Shortcut Id="startmenuManual" Directory="ProgramMenuDir" Name="Instruction Manual" Advertise="yes" /> 
      </File> 
     </Component>--> 

     </Directory> 
    </Directory> 
    </Directory> 

    <Directory Id="ProgramMenuFolder" Name="Programs"> 
    <Directory Id="ProgramMenuDir" Name="Foobar 1.0"> 
     <Component Id="ProgramMenuDir" Guid="E510F3DA-82AA-11DF-8814-8970DFD72085"> 
     <RemoveFolder Id='ProgramMenuDir' On='uninstall' /> 
     <RegistryValue Root='HKCU' Key='Software\[Manufacturer]\[ProductName]' Type='string' Value='' KeyPath='yes' /> 
     </Component> 
    </Directory> 
    </Directory> 

    <Directory Id="DesktopFolder" Name="Desktop" /> 
</Directory> 

<Feature Id='Complete' Level='1'> 
    <ComponentRef Id='MainExecutable' /> 
    <!--<ComponentRef Id='HelperLibrary' /> 
    <ComponentRef Id='Manual' />--> 
    <ComponentRef Id='ProgramMenuDir' /> 
</Feature> 

<Icon Id="WpfApplicationNAntTest.exe" SourceFile="WpfApplicationNAntTest.exe" /> 
<UIRef Id="WixUI_Minimal" /> 
</Product> 
</Wix> 

quand je suis en train de faire un installateur je suis geting cette erreur -

le système ne peut pas trouver le fichier WpfApplicationNAntTest.exe

je n'ai pas beaucoup idée de Nant ou Wix comme je suis nouveau à cela. S'il vous plaît aider.

Répondre

1

Je pense que vous devez spécifier le chemin d'accès complet dans l'élément Icon, l'attribut SourceFile à l'emplacement WpfApplicationNantTest.exe.

Quelque chose comme:

<Icon 
Id="WpfApplicationNAntTest.exe"  
SourceFile="D:\Subrat\Projects\WPF\WpfApplicationNAntTest\bin\debug\WpfApplicationNAntTest.exe" /> 
+0

pas qu'il n'a pas aidé – sid

+0

samplefirst.wixobject est créé se. Mais je reçois une erreur sur l'exécution de light.exe – sid

+0

merci préet son fonctionnement. j'avais foiré le chemin. – sid

Questions connexes