Browse Source

Installer now supports upgrades. .Net assemblies correctly identified in installer. Each assembly is now in its own Component in the installer. Added a new UpdateSetupInfo utility to update the installer's product version and guids. Updated build server scripts to use the new WiX based installer.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@1734 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Matt Ward 19 years ago
parent
commit
0a2022878c
  1. 405
      src/Setup/Files.wxs
  2. 141
      src/Setup/Readme.txt
  3. 322
      src/Setup/Setup.wxs
  4. 5
      src/Setup/SharpDevelop.Setup.wixproj
  5. 9
      src/Setup/SharpDevelop.Setup.wixproj.user
  6. 9
      src/Setup/SharpDevelop.Setup.wixproj.user.template
  7. 2
      src/Setup/SharpDevelop.url
  8. 3
      src/Setup/buildSetup.bat
  9. 241
      src/Tools/UpdateSetupInfo/Main.cs
  10. 44
      src/Tools/UpdateSetupInfo/Readme.txt
  11. 51
      src/Tools/UpdateSetupInfo/UpdateSetupInfo.csproj
  12. 14
      src/Tools/UpdateSetupInfo/UpdateSetupInfo.exe.manifest
  13. 16
      src/Tools/UpdateSetupInfo/UpdateSetupInfo.sln

405
src/Setup/Files.wxs

@ -8,7 +8,7 @@ @@ -8,7 +8,7 @@
<Directory Id="INSTALLDIR" Name="2.1">
<Directory Id="BinFolder" Name="bin">
<Component Id="SharpDevelopExe" Guid="F632C62C-A4DD-4507-9678-C7DCFF4DBC8C" DiskId="1">
<File Id="SharpDevelop.exe" Name="SharpDev.exe" LongName="SharpDevelop.exe" Source="..\..\bin\SharpDevelop.exe">
<File Id="SharpDevelop.exe" Name="SharpDev.exe" LongName="SharpDevelop.exe" Source="..\..\bin\SharpDevelop.exe" Assembly=".net" AssemblyApplication="SharpDevelop.exe" AssemblyManifest="SharpDevelop.exe" KeyPath="yes">
<!--
NGens SharpDevelop.exe. Needs the NetFx extension (WixNetFxExtension.dll),
library (netfx.wixlib) and custom actions (netfxca.dll).
@ -108,20 +108,14 @@ @@ -108,20 +108,14 @@
</Extension>
</ProgId>
</Component>
<Component Id="SharpDevelopCoreFiles" Guid="E94FCC8C-9741-45EF-AFDA-9F9CF02BF3F7" DiskId="1">
<File Source="..\..\bin\ICSharpCode.Build.Tasks.dll" Name="ICBuild.dll" Id="ICSharpCode.Build.Tasks.dll" LongName="ICSharpCode.Build.Tasks.dll" />
<File Source="..\..\bin\ICSharpCode.Core.dll" Name="ICCore.DLL" Id="ICSharpCode.Core.dll" LongName="ICSharpCode.Core.dll" />
<File Source="..\..\bin\ICSharpCode.Core.xml" Name="ICCore.XML" Id="ICSharpCode.Core.xml" LongName="ICSharpCode.Core.xml" />
<File Source="..\..\bin\ICSharpCode.NRefactory.dll" Name="ICNef.DLL" Id="ICSharpCode.NRefactory.dll" LongName="ICSharpCode.NRefactory.dll" />
<File Source="..\..\bin\ICSharpCode.SharpDevelop.dll" Name="ICSharp.DLL" Id="ICSharpCode.SharpDevelop.dll" LongName="ICSharpCode.SharpDevelop.dll" />
<File Source="..\..\bin\ICSharpCode.SharpDevelop.Dom.dll" Name="ICDom.DLL" Id="ICSharpCode.SharpDevelop.Dom.dll" LongName="ICSharpCode.SharpDevelop.Dom.dll" />
<File Source="..\..\bin\ICSharpCode.SharpDevelop.Sda.dll" Name="ICsda.dll" Id="ICSharpCode.SharpDevelop.Sda.dll" LongName="ICSharpCode.SharpDevelop.Sda.dll" />
<File Source="..\..\bin\ICSharpCode.SharpDevelop.Sda.dll.config" Name="ICSda.con" Id="ICSharpCode.SharpDevelop.Sda.dll.config" LongName="ICSharpCode.SharpDevelop.Sda.dll.config" />
<File Source="..\..\bin\ICSharpCode.SharpDevelop.Sda.xml" Name="ICSda.XML" Id="ICSharpCode.SharpDevelop.Sda.xml" LongName="ICSharpCode.SharpDevelop.Sda.xml" />
<File Source="..\..\bin\ICSharpCode.TextEditor.dll" Name="ICText.DLL" Id="ICSharpCode.TextEditor.dll" LongName="ICSharpCode.TextEditor.dll" />
<File Source="..\..\bin\log4net.dll" Name="log4net.dll" Id="log4net.dll" />
<File Source="..\..\bin\Mono.Cecil.dll" Name="cecil.DLL" Id="Mono.Cecil.dll" LongName="Mono.Cecil.dll" />
<File Source="..\..\bin\MonoReflectionLoader.dll" Name="monoref.DLL" Id="MonoReflectionLoader.dll" LongName="MonoReflectionLoader.dll" />
<Component Id="SharpDevelopExeFiles" Guid="B9427DC8-6C86-4D1A-B3DC-1B0E0F1F1DC1" DiskId="1">
<File Source="..\..\bin\SharpDevelop.exe.config" Name="sharpdev.con" Id="SharpDevelop.exe.config" LongName="SharpDevelop.exe.config" />
<File Source="..\..\bin\SharpDevelop.exe.manifest" Name="sharpdev.man" Id="SharpDevelop.exe.manifest" LongName="SharpDevelop.exe.manifest" />
</Component>
<Component Id="ICSharpCodeBuildTasksDll" Guid="E94FCC8C-9741-45EF-AFDA-9F9CF02BF3F7" DiskId="1">
<File Source="..\..\bin\ICSharpCode.Build.Tasks.dll" Name="ICBuild.dll" Id="ICSharpCode.Build.Tasks.dll" LongName="ICSharpCode.Build.Tasks.dll" Assembly=".net" AssemblyApplication="ICSharpCode.Build.Tasks.dll" AssemblyManifest="ICSharpCode.Build.Tasks.dll" KeyPath="yes"/>
</Component>
<Component Id="BuildTasksTargetFiles" Guid="5BED648E-FF11-4E6A-A966-0901FA915BA8" DiskId="1">
<File Source="..\..\bin\SharpDevelop.Build.Common.targets" Name="Common.tgt" Id="SharpDevelop.Build.Common.targets" LongName="SharpDevelop.Build.Common.targets" />
<File Source="..\..\bin\SharpDevelop.Build.CSharp.targets" Name="CSharp.tgt" Id="SharpDevelop.Build.CSharp.targets" LongName="SharpDevelop.Build.CSharp.targets" />
<File Source="..\..\bin\SharpDevelop.Build.Mono.Gmcs.targets" Name="Gmcs.tgt" Id="SharpDevelop.Build.Mono.Gmcs.targets" LongName="SharpDevelop.Build.Mono.Gmcs.targets" />
@ -130,75 +124,189 @@ @@ -130,75 +124,189 @@
<File Source="..\..\bin\SharpDevelop.Build.MSIL.targets" Name="Msil.tgt" Id="SharpDevelop.Build.MSIL.targets" LongName="SharpDevelop.Build.MSIL.targets" />
<File Source="..\..\bin\SharpDevelop.Build.VisualBasic.targets" Name="VB.tgt" Id="SharpDevelop.Build.VisualBasic.targets" LongName="SharpDevelop.Build.VisualBasic.targets" />
<File Source="..\..\bin\SharpDevelop.CodeAnalysis.targets" Name="analysis.tgt" Id="SharpDevelop.CodeAnalysis.targets" LongName="SharpDevelop.CodeAnalysis.targets" />
<File Source="..\..\bin\SharpDevelop.exe.config" Name="sharpdev.con" Id="SharpDevelop.exe.config" LongName="SharpDevelop.exe.config" />
<File Source="..\..\bin\SharpDevelop.exe.manifest" Name="sharpdev.man" Id="SharpDevelop.exe.manifest" LongName="SharpDevelop.exe.manifest" />
<File Source="..\..\bin\WeifenLuo.WinFormsUI.Docking.dll" Name="WEIFEN.DLL" Id="WeifenLuo.WinFormsUI.Docking.dll" LongName="WeifenLuo.WinFormsUI.Docking.dll" />
</Component>
<Component Id="ICSharpCodeCoreDll" Guid="DFD67330-0F6D-4069-9B03-90E2BB7B9273" DiskId="1">
<File Source="..\..\bin\ICSharpCode.Core.dll" Name="ICCore.DLL" Id="ICSharpCode.Core.dll" LongName="ICSharpCode.Core.dll" Assembly=".net" AssemblyApplication="ICSharpCode.Core.dll" AssemblyManifest="ICSharpCode.Core.dll" KeyPath="yes"/>
</Component>
<Component Id="ICSharpCodeNRefactoryDll" Guid="53FE6482-01C2-45DE-9929-A84510CDF39C" DiskId="1">
<File Source="..\..\bin\ICSharpCode.NRefactory.dll" Name="ICNef.DLL" Id="ICSharpCode.NRefactory.dll" LongName="ICSharpCode.NRefactory.dll" Assembly=".net" AssemblyApplication="ICSharpCode.NRefactory.dll" AssemblyManifest="ICSharpCode.NRefactory.dll" KeyPath="yes"/>
</Component>
<Component Id="ICSharpCodeSharpDevelopDll" Guid="CC2E4AAB-58C0-40B7-B440-1D7F65EED379" DiskId="1">
<File Source="..\..\bin\ICSharpCode.SharpDevelop.dll" Name="ICSharp.DLL" Id="ICSharpCode.SharpDevelop.dll" LongName="ICSharpCode.SharpDevelop.dll" Assembly=".net" AssemblyApplication="ICSharpCode.SharpDevelop.dll" AssemblyManifest="ICSharpCode.SharpDevelop.dll" KeyPath="yes"/>
</Component>
<Component Id="ICSharpCodeSharpDevelopDomdll" Guid="3F7DB0E5-6755-419B-85E1-6A52372D25FA" DiskId="1">
<File Source="..\..\bin\ICSharpCode.SharpDevelop.Dom.dll" Name="ICDom.DLL" Id="ICSharpCode.SharpDevelop.Dom.dll" LongName="ICSharpCode.SharpDevelop.Dom.dll" Assembly=".net" AssemblyApplication="ICSharpCode.SharpDevelop.Dom.dll" AssemblyManifest="ICSharpCode.SharpDevelop.Dom.dll" KeyPath="yes"/>
</Component>
<Component Id="ICSharpCodeSharpDevelopSdaFiles" Guid="12B16781-2FFE-4E80-A78E-73F1425991BF" DiskId="1">
<File Source="..\..\bin\ICSharpCode.SharpDevelop.Sda.dll" Name="ICsda.dll" Id="ICSharpCode.SharpDevelop.Sda.dll" LongName="ICSharpCode.SharpDevelop.Sda.dll" Assembly=".net" AssemblyApplication="ICSharpCode.SharpDevelop.Sda.dll" AssemblyManifest="ICSharpCode.SharpDevelop.Sda.dll" KeyPath="yes"/>
<File Source="..\..\bin\ICSharpCode.SharpDevelop.Sda.dll.config" Name="ICSda.con" Id="ICSharpCode.SharpDevelop.Sda.dll.config" LongName="ICSharpCode.SharpDevelop.Sda.dll.config" />
</Component>
<Component Id="ICSharpCodeTextEditorDll" Guid="E67D85A5-A891-4E61-9980-C1F1523C7972" DiskId="1">
<File Source="..\..\bin\ICSharpCode.TextEditor.dll" Name="ICText.DLL" Id="ICSharpCode.TextEditor.dll" LongName="ICSharpCode.TextEditor.dll" Assembly=".net" AssemblyApplication="ICSharpCode.SharpDevelop.Sda.dll" AssemblyManifest="ICSharpCode.SharpDevelop.Sda.dll" KeyPath="yes"/>
</Component>
<Component Id="log4netDll" Guid="0CE6ECAC-3C96-419E-9EA9-01F95C2C17BC" DiskId="1">
<File Source="..\..\bin\log4net.dll" Name="log4net.dll" Id="log4net.dll" Assembly=".net" AssemblyApplication="log4net.dll" AssemblyManifest="log4net.dll" KeyPath="yes"/>
</Component>
<Component Id="MonoCecilDll" Guid="F714FD47-9E0A-488F-8F44-11C0220721E3" DiskId="1">
<File Source="..\..\bin\Mono.Cecil.dll" Name="cecil.DLL" Id="Mono.Cecil.dll" LongName="Mono.Cecil.dll" Assembly=".net" AssemblyApplication="Mono.Cecil.dll" AssemblyManifest="Mono.Cecil.dll" KeyPath="yes"/>
</Component>
<Component Id="MonoReflectionLoaderDll" Guid="00076C86-4CBA-4359-AEC3-85DFA054A69E" DiskId="1">
<File Source="..\..\bin\MonoReflectionLoader.dll" Name="monoref.DLL" Id="MonoReflectionLoader.dll" LongName="MonoReflectionLoader.dll" Assembly=".net" AssemblyApplication="MonoReflectionLoader.dll" AssemblyManifest="MonoReflectionLoader.dll" KeyPath="yes"/>
</Component>
<Component Id="WeifenLuoWinFormsUIDockingDll" Guid="AB160125-2828-434E-8810-BE642A77B0E5" DiskId="1">
<File Source="..\..\bin\WeifenLuo.WinFormsUI.Docking.dll" Name="WEIFEN.DLL" Id="WeifenLuo.WinFormsUI.Docking.dll" LongName="WeifenLuo.WinFormsUI.Docking.dll" Assembly=".net" AssemblyApplication="WeifenLuo.WinFormsUI.Docking.dll" AssemblyManifest="WeifenLuo.WinFormsUI.Docking.dll" KeyPath="yes"/>
</Component>
<Directory Id="ToolsFolder" Name="Tools">
<Directory Id="ComponentInspectorFolder" LongName="ComponentInspector" Name="CompInsp">
<Component Guid="E4175768-82FD-45F4-8E7D-BB4031E97454" Id="ComponentInspectorFiles" DiskId="1">
<File Source="..\..\bin\Tools\ComponentInspector\ComponentInspector.Core.dll" Name="cicore.dll" Id="Tools.ComponentInspector.Core.dll" LongName="ComponentInspector.Core.dll" />
<File Source="..\..\bin\Tools\ComponentInspector\ComponentInspector.exe" Name="compinsp.exe" Id="ComponentInspector.exe" LongName="ComponentInspector.exe" />
<Component Guid="E4175768-82FD-45F4-8E7D-BB4031E97454" Id="ComponentInspectorCoreDll" DiskId="1">
<File Source="..\..\bin\Tools\ComponentInspector\ComponentInspector.Core.dll" Name="cicore.dll" Id="Tools.ComponentInspector.Core.dll" LongName="ComponentInspector.Core.dll" Assembly=".net" AssemblyApplication="Tools.ComponentInspector.Core.dll" AssemblyManifest="Tools.ComponentInspector.Core.dll" KeyPath="yes" />
</Component>
<Component Guid="59BEBE19-6AF1-4557-88C5-ED0B935EAE1C" Id="ComponentInspectorExe" DiskId="1">
<File Source="..\..\bin\Tools\ComponentInspector\ComponentInspector.exe" Name="compinsp.exe" Id="ComponentInspector.exe" LongName="ComponentInspector.exe" Assembly=".net" AssemblyApplication="ComponentInspector.exe" AssemblyManifest="ComponentInspector.exe" KeyPath="yes" />
<File Source="..\..\bin\Tools\ComponentInspector\ComponentInspector.exe.config" Name="compinsp.cfg" Id="ComponentInspector.exe.config" LongName="ComponentInspector.exe.config" />
<File Source="..\..\bin\Tools\ComponentInspector\ICSharpCode.Core.dll" Name="icscore.dll" Id="ComponentInspector.ICSharpCode.Core.dll" LongName="ICSharpCode.Core.dll" />
<File Source="..\..\bin\Tools\ComponentInspector\log4net.dll" Name="log4net.dll" Id="ComponentInspector.log4net.dll" />
</Component>
<Component Guid="F2643529-834A-4EDE-B0C2-36E0A031E997" Id="ComponentInspectorICSharpCodeCoreDll" DiskId="1">
<File Source="..\..\bin\Tools\ComponentInspector\ICSharpCode.Core.dll" Name="icscore.dll" Id="ComponentInspector.ICSharpCode.Core.dll" LongName="ICSharpCode.Core.dll" Assembly=".net" AssemblyApplication="ComponentInspector.ICSharpCode.Core.dll" AssemblyManifest="ComponentInspector.ICSharpCode.Core.dll" KeyPath="yes" />
</Component>
<Component Id="ComponentInspectorLog4NetDll" Guid="56394DB5-3D3A-47ED-B99A-24AB2D0C5E88" DiskId="1">
<File Source="..\..\bin\Tools\ComponentInspector\log4net.dll" Name="log4net.dll" Id="ComponentInspector.log4net.dll" Assembly=".net" AssemblyApplication="ComponentInspector.log4net.dll" AssemblyManifest="ComponentInspector.log4net.dll" KeyPath="yes"/>
</Component>
</Directory>
<Directory Id="NDocFolder" Name="NDoc">
<Component Guid="9949F648-9A56-44FF-830A-84E69067960A" Id="NDocFiles" DiskId="1">
<Component Guid="9949F648-9A56-44FF-830A-84E69067960A" Id="NDocMSHelpCompilerDll" DiskId="1">
<File Source="..\..\bin\Tools\NDoc\Interop.MSHelpCompiler.dll" Name="imshc.dll" Id="Interop.MSHelpCompiler.dll" LongName="Interop.MSHelpCompiler.dll" Assembly=".net" AssemblyApplication="Interop.MSHelpCompiler.dll" AssemblyManifest="Interop.MSHelpCompiler.dll" KeyPath="yes" />
</Component>
<Component Id="NDocCoreDll" Guid="BF737A93-534B-4F21-9D61-26429397E6C5" DiskId="1">
<File Source="..\..\bin\Tools\NDoc\NDoc.Core.dll" Name="ndcore.dll" Id="NDoc.Core.dll" LongName="NDoc.Core.dll" Assembly=".net" AssemblyApplication="NDoc.Core.dll" AssemblyManifest="NDoc.Core.dll" KeyPath="yes" />
</Component>
<Component Id="NDocDocumenterIntellisenseDll" Guid="A7AF6CA5-5212-4C6C-9A64-C8A0896C1B8B" DiskId="1">
<File Source="..\..\bin\Tools\NDoc\NDoc.Documenter.Intellisense.dll" Name="nddi.dll" Id="NDoc.Documenter.Intellisense.dll" LongName="NDoc.Documenter.Intellisense.dll" Assembly=".net" AssemblyApplication="NDoc.Documenter.Intellisense.dll" AssemblyManifest="NDoc.Documenter.Intellisense.dll" KeyPath="yes" />
</Component>
<Component Id="NDocDocumenterJavaDocDll" Guid="D0DEBB76-B53B-4370-BB35-379202F06E02" DiskId="1">
<File Source="..\..\bin\Tools\NDoc\NDoc.Documenter.JavaDoc.dll" Name="ndjd.dll" Id="NDoc.Documenter.JavaDoc.dll" LongName="NDoc.Documenter.JavaDoc.dll" Assembly=".net" AssemblyApplication="NDoc.Documenter.JavaDoc.dll" AssemblyManifest="NDoc.Documenter.JavaDoc.dll" KeyPath="yes" />
</Component>
<Component Id="NDocDocumenterLatexDll" Guid="D109A803-9057-4763-AFC0-FC86E3297D41" DiskId="1">
<File Source="..\..\bin\Tools\NDoc\NDoc.Documenter.Latex.dll" Name="nddl.dll" Id="NDoc.Documenter.Latex.dll" LongName="NDoc.Documenter.Latex.dll" Assembly=".net" AssemblyApplication="NDoc.Documenter.Latex.dll" AssemblyManifest="NDoc.Documenter.Latex.dll" KeyPath="yes" />
</Component>
<Component Id="NDocDocumenterLinearHtmlDll" Guid="FF26AE7B-72C9-4C95-A6D7-2C2967FB32FF" DiskId="1">
<File Source="..\..\bin\Tools\NDoc\NDoc.Documenter.LinearHtml.dll" Name="nddlh.dll" Id="NDoc.Documenter.LinearHtml.dll" LongName="NDoc.Documenter.LinearHtml.dll" Assembly=".net" AssemblyApplication="NDoc.Documenter.LinearHtml.dll" AssemblyManifest="NDoc.Documenter.LinearHtml.dll" KeyPath="yes" />
</Component>
<Component Id="NDocDocumenterMsdn2Dll" Guid="C95C3278-EF9E-4633-A6D4-A530925A9F4C" DiskId="1">
<File Source="..\..\bin\Tools\NDoc\NDoc.Documenter.Msdn2.dll" Name="nddm2.dll" Id="NDoc.Documenter.Msdn2.dll" LongName="NDoc.Documenter.Msdn2.dll" Assembly=".net" AssemblyApplication="NDoc.Documenter.Msdn2.dll" AssemblyManifest="NDoc.Documenter.Msdn2.dll" KeyPath="yes" />
</Component>
<Component Id="NDocDocumenterMsdnDll" Guid="0DB24405-64BD-4DC6-8072-14F4A88EB27E" DiskId="1">
<File Source="..\..\bin\Tools\NDoc\NDoc.Documenter.Msdn.dll" Name="nddm.dll" Id="NDoc.Documenter.Msdn.dll" LongName="NDoc.Documenter.Msdn.dll" Assembly=".net" AssemblyApplication="NDoc.Documenter.Msdn.dll" AssemblyManifest="NDoc.Documenter.Msdn.dll" KeyPath="yes" />
</Component>
<Component Id="NDocDocumenterNativeHtmlHelp2Dll" Guid="D25910E9-A585-4CE8-8CB6-FAB47DF959F5" DiskId="1">
<File Source="..\..\bin\Tools\NDoc\NDoc.Documenter.NativeHtmlHelp2.dll" Name="nddnhh.dll" Id="NDoc.Documenter.NativeHtmlHelp2.dll" LongName="NDoc.Documenter.NativeHtmlHelp2.dll" Assembly=".net" AssemblyApplication="NDoc.Documenter.NativeHtmlHelp2.dll" AssemblyManifest="NDoc.Documenter.NativeHtmlHelp2.dll" KeyPath="yes" />
</Component>
<Component Id="NDocDocumenterXmlDll" Guid="CAAAA822-BD7C-405D-A836-D51D824E1924" DiskId="1">
<File Source="..\..\bin\Tools\NDoc\NDoc.Documenter.Xml.dll" Name="nddx.dll" Id="NDoc.Documenter.Xml.dll" LongName="NDoc.Documenter.Xml.dll" Assembly=".net" AssemblyApplication="NDoc.Documenter.Xml.dll" AssemblyManifest="NDoc.Documenter.Xml.dll" KeyPath="yes" />
</Component>
<Component Id="NDocExtendedUIDll" Guid="6F87B911-E2B9-4250-97EC-C1FBF0CF6F04" DiskId="1">
<File Source="..\..\bin\Tools\NDoc\NDoc.ExtendedUI.dll" Name="dneui.dll" Id="NDoc.ExtendedUI.dll" LongName="NDoc.ExtendedUI.dll" Assembly=".net" AssemblyApplication="NDoc.ExtendedUI.dll" AssemblyManifest="NDoc.ExtendedUI.dll" KeyPath="yes" />
</Component>
<Component Id="NDocVisualStudioDll" Guid="51657055-2768-431C-971C-A1D6476CF5B6" DiskId="1">
<File Source="..\..\bin\Tools\NDoc\NDoc.VisualStudio.dll" Name="ndvs.dll" Id="NDoc.VisualStudio.dll" LongName="NDoc.VisualStudio.dll" Assembly=".net" AssemblyApplication="NDoc.VisualStudio.dll" AssemblyManifest="NDoc.VisualStudio.dll" KeyPath="yes" />
</Component>
<Component Id="NDocConsoleExe" Guid="BC452BE8-85F2-4FED-9F25-8D6ABCA0660D" DiskId="1">
<File Source="..\..\bin\Tools\NDoc\NDocConsole.exe" Name="ndcons.exe" Id="NDocConsole.exe" LongName="NDocConsole.exe" Assembly=".net" AssemblyApplication="NDocConsole.exe" AssemblyManifest="NDocConsole.exe" KeyPath="yes" />
</Component>
<Component Id="NDocGuiExe" Guid="6B6B1B57-EA70-40F0-9415-DD50D77D9F20" DiskId="1">
<File Source="..\..\bin\Tools\NDoc\NDocGui.exe" Name="NDocGui.exe" Id="NDocGui.exe" Assembly=".net" AssemblyApplication="NDocGui.exe" AssemblyManifest="NDocGui.exe" KeyPath="yes" />
<File Source="..\..\bin\Tools\NDoc\NDocGui.exe.manifest" Name="ndgui.man" Id="NDocGui.exe.manifest" LongName="NDocGui.exe.manifest" />
<File Source="..\..\bin\Tools\NDoc\Interop.MSHelpCompiler.dll" Name="imshc.dll" Id="Interop.MSHelpCompiler.dll" LongName="Interop.MSHelpCompiler.dll" />
<File Source="..\..\bin\Tools\NDoc\NDoc.Core.dll" Name="ndcore.dll" Id="NDoc.Core.dll" LongName="NDoc.Core.dll" />
<File Source="..\..\bin\Tools\NDoc\NDoc.Documenter.Intellisense.dll" Name="nddi.dll" Id="NDoc.Documenter.Intellisense.dll" LongName="NDoc.Documenter.Intellisense.dll" />
<File Source="..\..\bin\Tools\NDoc\NDoc.Documenter.JavaDoc.dll" Name="ndjd.dll" Id="NDoc.Documenter.JavaDoc.dll" LongName="NDoc.Documenter.JavaDoc.dll" />
<File Source="..\..\bin\Tools\NDoc\NDoc.Documenter.Latex.dll" Name="nddl.dll" Id="NDoc.Documenter.Latex.dll" LongName="NDoc.Documenter.Latex.dll" />
<File Source="..\..\bin\Tools\NDoc\NDoc.Documenter.LinearHtml.dll" Name="nddlh.dll" Id="NDoc.Documenter.LinearHtml.dll" LongName="NDoc.Documenter.LinearHtml.dll" />
<File Source="..\..\bin\Tools\NDoc\NDoc.Documenter.Msdn2.dll" Name="nddm2.dll" Id="NDoc.Documenter.Msdn2.dll" LongName="NDoc.Documenter.Msdn2.dll" />
<File Source="..\..\bin\Tools\NDoc\NDoc.Documenter.Msdn.dll" Name="nddm.dll" Id="NDoc.Documenter.Msdn.dll" LongName="NDoc.Documenter.Msdn.dll" />
<File Source="..\..\bin\Tools\NDoc\NDoc.Documenter.NativeHtmlHelp2.dll" Name="nddnhh.dll" Id="NDoc.Documenter.NativeHtmlHelp2.dll" LongName="NDoc.Documenter.NativeHtmlHelp2.dll" />
<File Source="..\..\bin\Tools\NDoc\NDoc.Documenter.Xml.dll" Name="nddx.dll" Id="NDoc.Documenter.Xml.dll" LongName="NDoc.Documenter.Xml.dll" />
<File Source="..\..\bin\Tools\NDoc\NDoc.ExtendedUI.dll" Name="dneui.dll" Id="NDoc.ExtendedUI.dll" LongName="NDoc.ExtendedUI.dll" />
<File Source="..\..\bin\Tools\NDoc\NDoc.VisualStudio.dll" Name="ndvs.dll" Id="NDoc.VisualStudio.dll" LongName="NDoc.VisualStudio.dll" />
<File Source="..\..\bin\Tools\NDoc\NDocConsole.exe" Name="ndcons.exe" Id="NDocConsole.exe" LongName="NDocConsole.exe" />
<File Source="..\..\bin\Tools\NDoc\NDocGui.exe" Name="NDocGui.exe" Id="NDocGui.exe" />
</Component>
</Directory>
<Directory Id="WixFolder" Name="Wix">
<Component Guid="78F8DB04-62B1-4A2F-A0D5-D8D890FE5D02" Id="WixFiles" DiskId="1">
<File Source="..\..\bin\Tools\Wix\WixVSExtension.dll" Name="WIXVSE_1.DLL" Id="WixVSExtension.dll" LongName="WixVSExtension.dll" />
<File Source="..\..\bin\Tools\Wix\candle.exe" Name="candle.exe" Id="candle.exe" />
<Component Guid="78F8DB04-62B1-4A2F-A0D5-D8D890FE5D02" Id="WixVSExtension" DiskId="1">
<File Source="..\..\bin\Tools\Wix\WixVSExtension.dll" Name="WIXVSE_1.DLL" Id="WixVSExtension.dll" LongName="WixVSExtension.dll" Assembly=".net" AssemblyApplication="WixVSExtension.dll" AssemblyManifest="WixVSExtension.dll" KeyPath="yes" />
</Component>
<Component Id="CandleExe" Guid="F76A6F0B-FE35-428A-9DFA-ED1BEB5322AF" DiskId="1">
<File Source="..\..\bin\Tools\Wix\candle.exe" Name="candle.exe" Id="candle.exe" Assembly=".net" AssemblyApplication="candle.exe" AssemblyManifest="candle.exe" KeyPath="yes" />
<File Source="..\..\bin\Tools\Wix\candle.exe.config" Name="CANDLE_1.CON" Id="candle.exe.config" LongName="candle.exe.config" />
</Component>
<Component Id="WixLicenseFiles" Guid="35784338-0E6A-4046-A82F-79BCE7549F08" DiskId="1">
<File Source="..\..\bin\Tools\Wix\CPL.TXT" Name="CPL.TXT" Id="CPL.TXT" />
<File Source="..\..\bin\Tools\Wix\dark.exe" Name="dark.exe" Id="dark.exe" />
<File Source="..\..\bin\Tools\Wix\dark.exe.config" Name="DARKEXE.CON" Id="dark.exe.config" LongName="dark.exe.config" />
<File Source="..\..\bin\Tools\Wix\License.rtf" Name="License.rtf" Id="License.rtf" />
<File Source="..\..\bin\Tools\Wix\light.exe" Name="light.exe" Id="light.exe" />
</Component>
<Component Id="DarkExe" Guid="45BAAB13-6E19-42DA-80BE-8C44EAD8A24E" DiskId="1">
<File Source="..\..\bin\Tools\Wix\dark.exe" Name="dark.exe" Id="dark.exe" Assembly=".net" AssemblyApplication="dark.exe" AssemblyManifest="dark.exe" KeyPath="yes" />
<File Source="..\..\bin\Tools\Wix\dark.exe.config" Name="DARKEXE.CON" Id="dark.exe.config" LongName="dark.exe.config" />
</Component>
<Component Id="LightExe" Guid="FFC7503F-A9BC-484C-BA88-4C0F700329DE" DiskId="1">
<File Source="..\..\bin\Tools\Wix\light.exe" Name="light.exe" Id="light.exe" Assembly=".net" AssemblyApplication="light.exe" AssemblyManifest="light.exe" KeyPath="yes" />
<File Source="..\..\bin\Tools\Wix\light.exe.config" Name="LIGHT_1.CON" Id="light.exe.config" LongName="light.exe.config" />
<File Source="..\..\bin\Tools\Wix\lit.exe" Name="lit.exe" Id="lit.exe" />
</Component>
<Component Id="LitExe" Guid="58312D82-CA9F-432C-BDE4-B96C6CC4EB22" DiskId="1">
<File Source="..\..\bin\Tools\Wix\lit.exe" Name="lit.exe" Id="lit.exe" Assembly=".net" AssemblyApplication="lit.exe" AssemblyManifest="lit.exe" KeyPath="yes" />
<File Source="..\..\bin\Tools\Wix\lit.exe.config" Name="LITEXE.CON" Id="lit.exe.config" LongName="lit.exe.config" />
</Component>
<Component Id="MergeModDll" Guid="2A3A1AA5-CB60-410A-B488-64F0A99682FF" DiskId="1">
<File Source="..\..\bin\Tools\Wix\mergemod.dll" Name="mergemod.dll" Id="mergemod.dll" />
<File Source="..\..\bin\Tools\Wix\Microsoft.Tools.WindowsInstallerXml.NAntTasks.dll" Name="MICROS_1.DLL" Id="Microsoft.Tools.WindowsInstallerXml.NAntTasks.dll" LongName="Microsoft.Tools.WindowsInstallerXml.NAntTasks.dll" />
</Component>
<Component Id="MicrosoftToolsWindowsInstallerXmlNAntTasksDll" Guid="BD16E99F-24CB-4D91-A763-5F513A528DBD" DiskId="1">
<File Source="..\..\bin\Tools\Wix\Microsoft.Tools.WindowsInstallerXml.NAntTasks.dll" Name="MICROS_1.DLL" Id="Microsoft.Tools.WindowsInstallerXml.NAntTasks.dll" LongName="Microsoft.Tools.WindowsInstallerXml.NAntTasks.dll" Assembly=".net" AssemblyApplication="Microsoft.Tools.WindowsInstallerXml.NAntTasks.dll" AssemblyManifest="Microsoft.Tools.WindowsInstallerXml.NAntTasks.dll" KeyPath="yes" />
</Component>
<Component Id="NetFxWixLib" Guid="CE847BC0-E9B2-41A1-A117-A9C0F22BD044" DiskId="1">
<File Source="..\..\bin\Tools\Wix\netfx.wixlib" Name="netfx.lib" LongName="netfix.wixlib" Id="netfx.wixlib" />
</Component>
<Component Id="NetFxCaDll" Guid="F5970A44-7122-4660-ABCD-821360690CCC" DiskId="1">
<File Source="..\..\bin\Tools\Wix\netfxca.dll" Name="netfxca.dll" Id="netfxca.dll" />
</Component>
<Component Id="PcaExecDll" Guid="978F8CBF-CB97-492F-B787-C4C9049AAFCD" DiskId="1">
<File Source="..\..\bin\Tools\Wix\pcaexec.dll" Name="pcaexec.dll" Id="pcaexec.dll" />
<File Source="..\..\bin\Tools\Wix\pcaext.dll" Name="pcaext.dll" Id="pcaext.dll" />
</Component>
<Component Id="PcaExtDll" Guid="993733F6-DE48-4723-B1BF-6BC9BD395AEF" DiskId="1">
<File Source="..\..\bin\Tools\Wix\pcaext.dll" Name="pcaext.dll" Id="pcaext.dll" Assembly=".net" AssemblyApplication="pcaext.dll" AssemblyManifest="pcaext.dll" KeyPath="yes" />
</Component>
<Component Id="PcaSchedDll" Guid="4296DDD0-93F0-4341-AAAC-9D64B7974EE7" DiskId="1">
<File Source="..\..\bin\Tools\Wix\pcasched.dll" Name="pcasched.dll" Id="pcasched.dll" />
</Component>
<Component Id="PubCaWixLib" Guid="FA9D7586-CE64-45EF-B8F4-8104B53BA7D2" DiskId="1">
<File Source="..\..\bin\Tools\Wix\pubca.wixlib" Name="pubca.lib" LongName="pubca.wixlib" Id="pubca.wixlib" />
</Component>
<Component Id="ScaWixLib" Guid="97C97B61-27B2-4520-8406-AFD3C0627081" DiskId="1">
<File Source="..\..\bin\Tools\Wix\sca.wixlib" Name="sca.lib" Id="sca.wixlib" LongName="sca.wixlib" />
</Component>
<Component Id="ScaExecDll" Guid="D70C24FA-5F7D-45A1-BABD-A0A7B4092A89" DiskId="1">
<File Source="..\..\bin\Tools\Wix\scaexec.dll" Name="scaexec.dll" Id="scaexec.dll" />
</Component>
<Component Id="ScashedDll" Guid="91C414F4-B73A-4E47-9640-490E71FE1A40" DiskId="1">
<File Source="..\..\bin\Tools\Wix\scasched.dll" Name="scasched.dll" Id="scasched.dll" />
<File Source="..\..\bin\Tools\Wix\tallow.exe" Name="tallow.exe" Id="tallow.exe" />
</Component>
<Component Id="TallowExe" Guid="9B3C159E-FB00-40EE-B1FB-2B2C7595DF62" DiskId="1">
<File Source="..\..\bin\Tools\Wix\tallow.exe" Name="tallow.exe" Id="tallow.exe" Assembly=".net" AssemblyApplication="tallow.exe" AssemblyManifest="tallow.exe" KeyPath="yes" />
<File Source="..\..\bin\Tools\Wix\tallow.exe.config" Name="tallow.con" Id="tallow.exe.config" LongName="tallow.exe.config" />
</Component>
<Component Id="VsWixLib" Guid="1ED216D8-645D-469F-A973-E0B5CABC3DB5" DiskId="1">
<File Source="..\..\bin\Tools\Wix\vs.wixlib" Name="vs.wix" Id="vs.wixlib" LongName="vs.wixlib" />
</Component>
<Component Id="WInteropDll" Guid="55EC9E38-B9E5-40E0-9B13-959154F215AB" DiskId="1">
<File Source="..\..\bin\Tools\Wix\winterop.dll" Name="winterop.dll" Id="winterop.dll" />
<File Source="..\..\bin\Tools\Wix\wix.dll" Name="wix.dll" Id="wix.dll" />
<File Source="..\..\bin\Tools\Wix\wix.targets" Name="wix.tgt" Id="wix.targets" LongName="wix.targets" />
</Component>
<Component Id="WixDll" Guid="C0A01A75-4EED-49D5-BAC4-B218236D4524" DiskId="1">
<File Source="..\..\bin\Tools\Wix\wix.dll" Name="wix.dll" Id="wix.dll" Assembly=".net" AssemblyApplication="wix.dll" AssemblyManifest="wix.dll" KeyPath="yes" />
</Component>
<Component Id="WixCaDll" Guid="1AABACFE-4672-4860-AA10-E43E8AD24BB8" DiskId="1">
<File Source="..\..\bin\Tools\Wix\wixca.dll" Name="wixca.dll" Id="wixca.dll" />
</Component>
<Component Id="WixCaWixLib" Guid="F3328E11-920B-4506-8514-A99C5E6B0E7A" DiskId="1">
<File Source="..\..\bin\Tools\Wix\wixca.wixlib" Name="wixca.lib" Id="wixca.wixlib" LongName="wixca.wixlib"/>
<File Source="..\..\bin\Tools\Wix\WixCop.exe" Name="WixCop.exe" Id="WixCop.exe" />
<File Source="..\..\bin\Tools\Wix\WixNetFxExtension.dll" Name="wixnet.dll" Id="WixNetFxExtension.dll" LongName="WixNetFxExtension.dll" />
<File Source="..\..\bin\Tools\Wix\WixTasks.dll" Name="WixTasks.dll" Id="WixTasks.dll" />
</Component>
<Component Id="WixCopExe" Guid="9DB7F19E-E737-46FC-A07B-1EEB7C710680" DiskId="1">
<File Source="..\..\bin\Tools\Wix\WixCop.exe" Name="WixCop.exe" Id="WixCop.exe" Assembly=".net" AssemblyApplication="WixCop.exe" AssemblyManifest="WixCop.exe" KeyPath="yes" />
</Component>
<Component Id="WixNetFxExtensionDll" Guid="CED55A4E-1F05-471F-8EA5-73277E3EFEFA" DiskId="1">
<File Source="..\..\bin\Tools\Wix\WixNetFxExtension.dll" Name="wixnet.dll" Id="WixNetFxExtension.dll" LongName="WixNetFxExtension.dll" Assembly=".net" AssemblyApplication="WixNetFxExtension.dll" AssemblyManifest="WixNetFxExtension.dll" KeyPath="yes" />
</Component>
<Component Id="WixTasksDll" Guid="B07D86EB-BB9A-4FD6-A882-2F0537AB21B5" DiskId="1">
<File Source="..\..\bin\Tools\Wix\wix.targets" Name="wix.tgt" Id="wix.targets" LongName="wix.targets" />
<File Source="..\..\bin\Tools\Wix\WixTasks.dll" Name="WixTasks.dll" Id="WixTasks.dll" Assembly=".net" AssemblyApplication="WixTasks.dll" AssemblyManifest="WixTasks.dll" KeyPath="yes" />
</Component>
<Component Id="WixUiWixLib" Guid="EC84F252-770A-457F-8701-99C93684D6B6" DiskId="1">
<File Source="..\..\bin\Tools\Wix\wixui.wixlib" Name="wixui.lib" LongName="wixui.wixlib" Id="wixui.wixlib" />
</Component>
<Component Id="WixLocalisationFiles" Guid="D9799E27-DE1B-40A4-BF76-F5DA7FEE22C0" DiskId="1">
<File Source="..\..\bin\Tools\Wix\WixUI_de-de.wxl" Name="wixuide.wxl" Id="WixUI_de_de.wxl" LongName="WixUI_de-de.wxl" />
<File Source="..\..\bin\Tools\Wix\WixUI_en-us.wxl" Name="wixuien.wxs" Id="WixUI_en_us.wxl" LongName="WixUI_en-us.wxl" />
<File Source="..\..\bin\Tools\Wix\WixUI_es-es.wxl" Name="wixuies.wxl" Id="WixUI_es_es.wxl" LongName="WixUI_es-es.wxl" />
@ -247,13 +355,21 @@ @@ -247,13 +355,21 @@
</Directory>
</Directory>
<Directory Id="NUnitFolder" Name="NUnit">
<Component Guid="264B36E0-A168-432B-A227-F628D0159370" Id="NUnitFiles" DiskId="1">
<File Source="..\..\bin\Tools\NUnit\nunit.core.extensions.dll" Name="nucext.dll" Id="nunit.core.extensions.dll" LongName="nunit.core.extensions.dll" />
<File Source="..\..\bin\Tools\NUnit\nunit.uikit.dll" Name="nuuikit.dll" Id="nunit.uikit.dll" LongName="nunit.uikit.dll" />
<File Source="..\..\bin\Tools\NUnit\nunit.util.dll" Name="nuutil.dll" Id="nunit.util.dll" LongName="nunit.util.dll" />
<File Source="..\..\bin\Tools\NUnit\nunit-console.exe" Name="nucons.exe" Id="nunit_console.exe" LongName="nunit-console.exe" />
<Component Guid="264B36E0-A168-432B-A227-F628D0159370" Id="NUnitCoreExtensionsDll" DiskId="1">
<File Source="..\..\bin\Tools\NUnit\nunit.core.extensions.dll" Name="nucext.dll" Id="nunit.core.extensions.dll" LongName="nunit.core.extensions.dll" Assembly=".net" AssemblyApplication="nunit.core.extensions.dll" AssemblyManifest="nunit.core.extensions.dll" KeyPath="yes" />
</Component>
<Component Guid="77AD4995-2B2B-4E93-86B2-78FEF44A2E23" Id="NUnitUiKitDll" DiskId="1">
<File Source="..\..\bin\Tools\NUnit\nunit.uikit.dll" Name="nuuikit.dll" Id="nunit.uikit.dll" LongName="nunit.uikit.dll" Assembly=".net" AssemblyApplication="nunit.uikit.dll" AssemblyManifest="nunit.uikit.dll" KeyPath="yes" />
</Component>
<Component Guid="05C2C035-FD03-4E68-B4B4-A20906FEBA9E" Id="NUnitUtilDll" DiskId="1">
<File Source="..\..\bin\Tools\NUnit\nunit.util.dll" Name="nuutil.dll" Id="nunit.util.dll" LongName="nunit.util.dll" Assembly=".net" AssemblyApplication="nunit.util.dll" AssemblyManifest="nunit.util.dll" KeyPath="yes" />
</Component>
<Component Guid="108E9A75-72D2-40FA-B65C-EFB5ECADB245" Id="NUnitConsoleFiles" DiskId="1">
<File Source="..\..\bin\Tools\NUnit\nunit-console.exe" Name="nucons.exe" Id="nunit_console.exe" LongName="nunit-console.exe" Assembly=".net" AssemblyApplication="nunit_console.exe" AssemblyManifest="nunit_console.exe" KeyPath="yes" />
<File Source="..\..\bin\Tools\NUnit\nunit-console.exe.config" Name="nucons.con" Id="nunit_console.exe.config" LongName="nunit-console.exe.config" />
<File Source="..\..\bin\Tools\NUnit\nunit-console-runner.dll" Name="nucrun.dll" Id="nunit_console_runner.dll" LongName="nunit-console-runner.dll" />
</Component>
<Component Guid="D27CF2E9-B836-4581-8FF3-23D1154FC9B8" Id="NunitConsoleRunnerDll" DiskId="1">
<File Source="..\..\bin\Tools\NUnit\nunit-console-runner.dll" Name="nucrun.dll" Id="nunit_console_runner.dll" LongName="nunit-console-runner.dll" Assembly=".net" AssemblyApplication="nunit_console_runner.dll" AssemblyManifest="nunit_console_runner.dll" KeyPath="yes" />
</Component>
<Component Guid="6485334C-163C-479E-9ACE-8E738D9BDB96" Id="NUnitCoreDll" DiskId="1">
<File Source="..\..\bin\Tools\NUnit\nunit.core.dll" Name="nucore.dll" Id="nunit.core.dll" LongName="nunit.core.dll" />
@ -635,28 +751,48 @@ @@ -635,28 +751,48 @@
<File Source="..\..\AddIns\AddIns\BackendBindings\BooBinding\Templates\FormsProject.xpt" Name="FORMSP_1.XPT" Id="FormsProject.xpt" LongName="FormsProject.xpt" />
</Component>
</Directory>
<Component Guid="208A468E-646B-4A34-A066-97DA55008ED4" Id="BooBindingFiles" DiskId="1">
<Component Guid="208A468E-646B-4A34-A066-97DA55008ED4" Id="BooBindingAddInDll" DiskId="1">
<File Source="..\..\AddIns\AddIns\BackendBindings\BooBinding\Boo.Interpreter.addin" Name="BOOIN_1.ADD" Id="Boo.Interpreter.addin" LongName="Boo.Interpreter.addin" />
<File Source="..\..\AddIns\AddIns\BackendBindings\BooBinding\Boo.InterpreterAddIn.dll" Name="BOOIN_1.DLL" Id="Boo.InterpreterAddIn.dll" LongName="Boo.InterpreterAddIn.dll" />
<File Source="..\..\AddIns\AddIns\BackendBindings\BooBinding\Boo.Lang.CodeDom.dll" Name="BOOLA_1.DLL" Id="Boo.Lang.CodeDom.dll" LongName="Boo.Lang.CodeDom.dll" />
<File Source="..\..\AddIns\AddIns\BackendBindings\BooBinding\Boo.Lang.Compiler.dll" Name="BOOLA_2.DLL" Id="Boo.Lang.Compiler.dll" LongName="Boo.Lang.Compiler.dll" />
<File Source="..\..\AddIns\AddIns\BackendBindings\BooBinding\Boo.Lang.dll" Name="BooLang.dll" LongName="Boo.Lang.dll" Id="Boo.Lang.dll" />
<File Source="..\..\AddIns\AddIns\BackendBindings\BooBinding\Boo.Lang.Interpreter.dll" Name="BOOLA_3.DLL" Id="Boo.Lang.Interpreter.dll" LongName="Boo.Lang.Interpreter.dll" />
<File Source="..\..\AddIns\AddIns\BackendBindings\BooBinding\Boo.Lang.Parser.dll" Name="BOOLA_4.DLL" Id="Boo.Lang.Parser.dll" LongName="Boo.Lang.Parser.dll" />
<File Source="..\..\AddIns\AddIns\BackendBindings\BooBinding\Boo.Lang.Useful.dll" Name="BOOLA_5.DLL" Id="Boo.Lang.Useful.dll" LongName="Boo.Lang.Useful.dll" />
<File Source="..\..\AddIns\AddIns\BackendBindings\BooBinding\Boo.InterpreterAddIn.dll" Name="BOOIN_1.DLL" Id="Boo.InterpreterAddIn.dll" LongName="Boo.InterpreterAddIn.dll" Assembly=".net" AssemblyApplication="Boo.InterpreterAddIn.dll" AssemblyManifest="Boo.InterpreterAddIn.dll" KeyPath="yes" />
</Component>
<Component Id="BooLangCodeDomDll" Guid="4AAA804F-6175-4C23-8A72-4B452EDD5CDF" DiskId="1">
<File Source="..\..\AddIns\AddIns\BackendBindings\BooBinding\Boo.Lang.CodeDom.dll" Name="BOOLA_1.DLL" Id="Boo.Lang.CodeDom.dll" LongName="Boo.Lang.CodeDom.dll" Assembly=".net" AssemblyApplication="Boo.Lang.CodeDom.dll" AssemblyManifest="Boo.Lang.CodeDom.dll" KeyPath="yes" />
</Component>
<Component Id="BooLangCompilerDll" Guid="601BA36D-B290-41A9-91A9-B97646A132E9" DiskId="1">
<File Source="..\..\AddIns\AddIns\BackendBindings\BooBinding\Boo.Lang.Compiler.dll" Name="BOOLA_2.DLL" Id="Boo.Lang.Compiler.dll" LongName="Boo.Lang.Compiler.dll" Assembly=".net" AssemblyApplication="Boo.Lang.Compiler.dll" AssemblyManifest="Boo.Lang.Compiler.dll" KeyPath="yes" />
</Component>
<Component Id="BooLangDll" Guid="80FA218A-9E89-4703-A5D2-705071A04096" DiskId="1">
<File Source="..\..\AddIns\AddIns\BackendBindings\BooBinding\Boo.Lang.dll" Name="BooLang.dll" LongName="Boo.Lang.dll" Id="Boo.Lang.dll" Assembly=".net" AssemblyApplication="Boo.Lang.dll" AssemblyManifest="Boo.Lang.dll" KeyPath="yes" />
</Component>
<Component Id="BooLangInterpreterDll" Guid="BD78B601-D070-46EF-A07D-39945161F399" DiskId="1">
<File Source="..\..\AddIns\AddIns\BackendBindings\BooBinding\Boo.Lang.Interpreter.dll" Name="BOOLA_3.DLL" Id="Boo.Lang.Interpreter.dll" LongName="Boo.Lang.Interpreter.dll" Assembly=".net" AssemblyApplication="Boo.Lang.Interpreter.dll" AssemblyManifest="Boo.Lang.Interpreter.dll" KeyPath="yes" />
</Component>
<Component Id="BooLangParserDll" Guid="A82A9C7A-7F1D-4AF1-BA30-0EFC3B87987D" DiskId="1">
<File Source="..\..\AddIns\AddIns\BackendBindings\BooBinding\Boo.Lang.Parser.dll" Name="BOOLA_4.DLL" Id="Boo.Lang.Parser.dll" LongName="Boo.Lang.Parser.dll" Assembly=".net" AssemblyApplication="Boo.Lang.Parser.dll" AssemblyManifest="Boo.Lang.Parser.dll" KeyPath="yes" />
</Component>
<Component Id="BooLangUsefulDll" Guid="0CAA6615-B9EE-42EE-9B4B-ABB714B4A989" DiskId="1">
<File Source="..\..\AddIns\AddIns\BackendBindings\BooBinding\Boo.Lang.Useful.dll" Name="BOOLA_5.DLL" Id="Boo.Lang.Useful.dll" LongName="Boo.Lang.Useful.dll" Assembly=".net" AssemblyApplication="Boo.Lang.Useful.dll" AssemblyManifest="Boo.Lang.Useful.dll" KeyPath="yes" />
</Component>
<Component Id="BooBuildTasksDll" Guid="4D7B1FD8-1835-425E-BAB9-C45CDD81D11A" DiskId="1">
<File Source="..\..\AddIns\AddIns\BackendBindings\BooBinding\Boo.Microsoft.Build.targets" Name="BOOMI_1.TAR" Id="Boo.Microsoft.Build.targets" LongName="Boo.Microsoft.Build.targets" />
<File Source="..\..\AddIns\AddIns\BackendBindings\BooBinding\Boo.Microsoft.Build.Tasks.dll" Name="BOOMI_1.DLL" Id="Boo.Microsoft.Build.Tasks.dll" LongName="Boo.Microsoft.Build.Tasks.dll" />
<File Source="..\..\AddIns\AddIns\BackendBindings\BooBinding\Boo.Microsoft.Build.Tasks.dll" Name="BOOMI_1.DLL" Id="Boo.Microsoft.Build.Tasks.dll" LongName="Boo.Microsoft.Build.Tasks.dll" Assembly=".net" AssemblyApplication="Boo.Microsoft.Build.Tasks.dll" AssemblyManifest="Boo.Microsoft.Build.Tasks.dll" KeyPath="yes" />
</Component>
<Component Id="BooBindingDll" Guid="38DDCB00-D3F8-4658-B463-8DA6CB597B66" DiskId="1">
<File Source="..\..\AddIns\AddIns\BackendBindings\BooBinding\BooBinding.addin" Name="BOOBIN_1.ADD" Id="BooBinding.addin" LongName="BooBinding.addin" />
<File Source="..\..\AddIns\AddIns\BackendBindings\BooBinding\BooBinding.dll" Name="BOOBIN_1.DLL" Id="BooBinding.dll" LongName="BooBinding.dll" />
<File Source="..\..\AddIns\AddIns\BackendBindings\BooBinding\booc.exe" Name="booc.exe" Id="booc.exe" />
<File Source="..\..\AddIns\AddIns\BackendBindings\BooBinding\BooBinding.dll" Name="BOOBIN_1.DLL" Id="BooBinding.dll" LongName="BooBinding.dll" Assembly=".net" AssemblyApplication="BooBinding.dll" AssemblyManifest="BooBinding.dll" KeyPath="yes" />
</Component>
<Component Id="BoocExe" Guid="41237AF5-CDDF-41E2-9DE4-0317D05CB840" DiskId="1">
<File Source="..\..\AddIns\AddIns\BackendBindings\BooBinding\booc.exe" Name="booc.exe" Id="booc.exe" Assembly=".net" AssemblyApplication="booc.exe" AssemblyManifest="booc.exe" KeyPath="yes" />
<File Source="..\..\AddIns\AddIns\BackendBindings\BooBinding\booc.exe.config" Name="BOOCEXE.CON" Id="booc.exe.config" LongName="booc.exe.config" />
<File Source="..\..\AddIns\AddIns\BackendBindings\BooBinding\booc.rsp" Name="booc.rsp" Id="booc.rsp" />
<File Source="..\..\AddIns\AddIns\BackendBindings\BooBinding\NRefactoryToBooConverter.dll" Name="NREFAC_1.DLL" Id="NRefactoryToBooConverter.dll" LongName="NRefactoryToBooConverter.dll" />
</Component>
<Component Id="NRefactoryToBooConverterDll" Guid="EC246CDF-A2C2-4BCF-81DB-CDDFFF42AA92" DiskId="1">
<File Source="..\..\AddIns\AddIns\BackendBindings\BooBinding\NRefactoryToBooConverter.dll" Name="NREFAC_1.DLL" Id="NRefactoryToBooConverter.dll" LongName="NRefactoryToBooConverter.dll" Assembly=".net" AssemblyApplication="NRefactoryToBooConverter.dll" AssemblyManifest="NRefactoryToBooConverter.dll" KeyPath="yes" />
</Component>
</Directory>
<Directory Id="CSharpBindingFolder" LongName="CSharpBinding" Name="CSharp">
<Component Guid="1E6F20EC-6BF4-45C0-AE99-319FBF568BD1" Id="CSharpBindingFiles" DiskId="1">
<File Source="..\..\AddIns\AddIns\BackendBindings\CSharpBinding\CSharpBinding.dll" Name="CSHARP_1.DLL" Id="CSharpBinding.dll" LongName="CSharpBinding.dll" />
<File Source="..\..\AddIns\AddIns\BackendBindings\CSharpBinding\CSharpBinding.dll" Name="CSHARP_1.DLL" Id="CSharpBinding.dll" LongName="CSharpBinding.dll" Assembly=".net" AssemblyApplication="CSharpBinding.dll" AssemblyManifest="CSharpBinding.dll" KeyPath="yes" />
<File Source="..\..\AddIns\AddIns\BackendBindings\CSharpBinding\CSharpBinding.addin" Name="CSHARP_1.ADD" Id="CSharpBinding.addin" LongName="CSharpBinding.addin" />
</Component>
</Directory>
@ -667,19 +803,19 @@ @@ -667,19 +803,19 @@
</Component>
</Directory>
<Component Guid="494441F4-63E9-4A3E-82D6-026A966BCD11" Id="ILAsmBindingFiles" DiskId="1">
<File Source="..\..\AddIns\AddIns\BackendBindings\ILAsmBinding\ILAsmBinding.dll" Name="ILASMB_1.DLL" Id="ILAsmBinding.dll" LongName="ILAsmBinding.dll" />
<File Source="..\..\AddIns\AddIns\BackendBindings\ILAsmBinding\ILAsmBinding.dll" Name="ILASMB_1.DLL" Id="ILAsmBinding.dll" LongName="ILAsmBinding.dll" Assembly=".net" AssemblyApplication="ILAsmBinding.dll" AssemblyManifest="ILAsmBinding.dll" KeyPath="yes" />
<File Source="..\..\AddIns\AddIns\BackendBindings\ILAsmBinding\ILAsmBinding.addin" Name="ILASMB_1.ADD" Id="ILAsmBinding.addin" LongName="ILAsmBinding.addin" />
</Component>
</Directory>
<Directory Id="VBNetBindingFolder" LongName="VBNetBinding" Name="VBNet">
<Component Guid="0F51B5A5-517F-40B3-932A-A0A693926E67" Id="VBNetBindingFiles" DiskId="1">
<File Source="..\..\AddIns\AddIns\BackendBindings\VBNetBinding\VBNetBinding.dll" Name="VBNETB_1.DLL" Id="VBNetBinding.dll" LongName="VBNetBinding.dll" />
<File Source="..\..\AddIns\AddIns\BackendBindings\VBNetBinding\VBNetBinding.dll" Name="VBNETB_1.DLL" Id="VBNetBinding.dll" LongName="VBNetBinding.dll" Assembly=".net" AssemblyApplication="VBNetBinding.dll" AssemblyManifest="VBNetBinding.dll" KeyPath="yes" />
<File Source="..\..\AddIns\AddIns\BackendBindings\VBNetBinding\VBNetBinding.addin" Name="VBNETB_1.ADD" Id="VBNetBinding.addin" LongName="VBNetBinding.addin" />
</Component>
</Directory>
<Directory Id="WixBindingFolder" LongName="WixBinding" Name="Wix">
<Component Guid="A54D7821-BBFD-49E9-8FFB-1AB224E25521" Id="WixBindingFiles" DiskId="1">
<File Source="..\..\AddIns\AddIns\BackendBindings\WixBinding\WixBinding.dll" Name="WIXBIN_1.DLL" Id="WixBinding.dll" LongName="WixBinding.dll" />
<File Source="..\..\AddIns\AddIns\BackendBindings\WixBinding\WixBinding.dll" Name="WIXBIN_1.DLL" Id="WixBinding.dll" LongName="WixBinding.dll" Assembly=".net" AssemblyApplication="WixBinding.dll" AssemblyManifest="WixBinding.dll" KeyPath="yes" />
<File Source="..\..\AddIns\AddIns\BackendBindings\WixBinding\SetupDialogControlLibrary.sdcl" Name="SETUPD_1.SDC" Id="SetupDialogControlLibrary.sdcl" LongName="SetupDialogControlLibrary.sdcl" />
<File Source="..\..\AddIns\AddIns\BackendBindings\WixBinding\WixBinding.addin" Name="WIXBIN_1.ADD" Id="WixBinding.addin" LongName="WixBinding.addin" />
</Component>
@ -696,55 +832,61 @@ @@ -696,55 +832,61 @@
<Directory Id="DisplayBindingsFolder" Name="display" LongName="DisplayBindings">
<Directory Id="FormsDesignerFolder" LongName="FormsDesigner" Name="Forms">
<Component Guid="14E454AB-8F83-4FB3-9EDE-92B7D5333998" Id="FormsDesignerFiles" DiskId="1">
<File Source="..\..\AddIns\AddIns\DisplayBindings\FormsDesigner\FormsDesigner.dll" Name="FORMSD_1.DLL" Id="FormsDesigner.dll" LongName="FormsDesigner.dll" />
<File Source="..\..\AddIns\AddIns\DisplayBindings\FormsDesigner\FormsDesigner.dll" Name="FORMSD_1.DLL" Id="FormsDesigner.dll" LongName="FormsDesigner.dll" Assembly=".net" AssemblyApplication="FormsDesigner.dll" AssemblyManifest="FormsDesigner.dll" KeyPath="yes" />
<File Source="..\..\AddIns\AddIns\DisplayBindings\FormsDesigner\FormsDesigner.addin" Name="FORMSD_1.ADD" Id="FormsDesigner.addin" LongName="FormsDesigner.addin" />
</Component>
</Directory>
<Directory Id="IconEditorFolder" LongName="IconEditor" Name="IconEd">
<Component Guid="A6F985C3-09A5-4650-9A8E-239BBC737B10" Id="IconEditorFiles" DiskId="1">
<File Source="..\..\AddIns\AddIns\DisplayBindings\IconEditor\ICSharpCode.IconEditorAddIn.dll" Name="ICSHAR_2.DLL" Id="ICSharpCode.IconEditorAddIn.dll" LongName="ICSharpCode.IconEditorAddIn.dll" />
<File Source="..\..\AddIns\AddIns\DisplayBindings\IconEditor\IconEditor.exe" Name="ICONED_1.EXE" Id="IconEditor.exe" LongName="IconEditor.exe" />
<Component Guid="13031705-82B1-46D8-8749-453A6A313A3B" Id="IconEditorExe" DiskId="1">
<File Source="..\..\AddIns\AddIns\DisplayBindings\IconEditor\IconEditor.exe" Name="ICONED_1.EXE" Id="IconEditor.exe" LongName="IconEditor.exe" Assembly=".net" AssemblyApplication="IconEditor.exe" AssemblyManifest="IconEditor.exe" KeyPath="yes" />
</Component>
<Component Guid="A6F985C3-09A5-4650-9A8E-239BBC737B10" Id="IconEditorAddInFiles" DiskId="1">
<File Source="..\..\AddIns\AddIns\DisplayBindings\IconEditor\ICSharpCode.IconEditorAddIn.dll" Name="ICSHAR_2.DLL" Id="ICSharpCode.IconEditorAddIn.dll" LongName="ICSharpCode.IconEditorAddIn.dll" Assembly=".net" AssemblyApplication="ICSharpCode.IconEditorAddIn.dll" AssemblyManifest="ICSharpCode.IconEditorAddIn.dll" KeyPath="yes" />
<File Source="..\..\AddIns\AddIns\DisplayBindings\IconEditor\IconEditorAddIn.addin" Name="ICONED_1.ADD" Id="IconEditorAddIn.addin" LongName="IconEditorAddIn.addin" />
</Component>
</Directory>
<Directory Id="ResourceEditorFolder" LongName="ResourceEditor" Name="ResEd">
<Component Guid="010A8620-382C-477B-9330-51A8B6C48A7A" Id="ResourceEditorFiles" DiskId="1">
<File Source="..\..\AddIns\AddIns\DisplayBindings\ResourceEditor\ResourceEditor.dll" Name="RESOUR_1.DLL" Id="ResourceEditor.dll" LongName="ResourceEditor.dll" />
<File Source="..\..\AddIns\AddIns\DisplayBindings\ResourceEditor\ResourceEditor.dll" Name="RESOUR_1.DLL" Id="ResourceEditor.dll" LongName="ResourceEditor.dll" Assembly=".net" AssemblyApplication="ResourceEditor.dll" AssemblyManifest="ResourceEditor.dll" KeyPath="yes" />
<File Source="..\..\AddIns\AddIns\DisplayBindings\ResourceEditor\ResourceEditor.addin" Name="RESOUR_1.ADD" Id="ResourceEditor.addin" LongName="ResourceEditor.addin" />
</Component>
</Directory>
<Directory Id="XmlEditorFolder" LongName="XmlEditor" Name="XmlEdit">
<Component Guid="BD0B4E5B-CBED-49A0-850C-3EA8DFCF3B17" Id="XmlEditorFiles" DiskId="1">
<File Source="..\..\AddIns\AddIns\DisplayBindings\XmlEditor\XmlEditor.dll" Name="XMLEDI_1.DLL" Id="XmlEditor.dll" LongName="XmlEditor.dll" />
<File Source="..\..\AddIns\AddIns\DisplayBindings\XmlEditor\XmlEditor.dll" Name="XMLEDI_1.DLL" Id="XmlEditor.dll" LongName="XmlEditor.dll" Assembly=".net" AssemblyApplication="XmlEditor.dll" AssemblyManifest="XmlEditor.dll" KeyPath="yes" />
<File Source="..\..\AddIns\AddIns\DisplayBindings\XmlEditor\XmlEditor.addin" Name="XMLEDI_1.ADD" Id="XmlEditor.addin" LongName="XmlEditor.addin" />
</Component>
</Directory>
</Directory>
<Directory Id="MiscAddInsFolder" Name="Misc">
<Directory Id="AddInManagerFolder" LongName="AddInManager" Name="AddMan">
<Component Guid="AA44E205-CCE8-46F3-B84B-D031BDB3570D" Id="AddInManagerSharpZipLibDll" DiskId="1">
<File Source="..\..\AddIns\AddIns\Misc\AddInManager\ICSharpCode.SharpZipLib.dll" Name="ICSHAR_3.DLL" Id="ICSharpCode.SharpZipLib.dll" LongName="ICSharpCode.SharpZipLib.dll" Assembly=".net" AssemblyApplication="ICSharpCode.SharpZipLib.dll" AssemblyManifest="ICSharpCode.SharpZipLib.dll" KeyPath="yes" />
</Component>
<Component Guid="DCC79FDD-A759-4CEE-A62E-C715738ABB9A" Id="AddInManagerFiles" DiskId="1">
<File Source="..\..\AddIns\AddIns\Misc\AddInManager\ICSharpCode.SharpZipLib.dll" Name="ICSHAR_3.DLL" Id="ICSharpCode.SharpZipLib.dll" LongName="ICSharpCode.SharpZipLib.dll" />
<File Source="..\..\AddIns\AddIns\Misc\AddInManager\AddInManager.addin" Name="ADDINM_1.ADD" Id="AddInManager.addin" LongName="AddInManager.addin" />
<File Source="..\..\AddIns\AddIns\Misc\AddInManager\ICSharpCode.AddInManager.dll" Name="ICSHAR_4.DLL" Id="ICSharpCode.AddInManager.dll" LongName="ICSharpCode.AddInManager.dll" />
<File Source="..\..\AddIns\AddIns\Misc\AddInManager\ICSharpCode.AddInManager.dll" Name="ICSHAR_4.DLL" Id="ICSharpCode.AddInManager.dll" LongName="ICSharpCode.AddInManager.dll" Assembly=".net" AssemblyApplication="ICSharpCode.AddInManager.dll" AssemblyManifest="ICSharpCode.AddInManager.dll" KeyPath="yes" />
</Component>
</Directory>
<Directory Id="AddInScoutFolder" Name="AddScout" LongName="AddinScout">
<Component Guid="815D3708-5A0A-4B8E-BB72-66DF8E851917" Id="AddInScoutFiles" DiskId="1">
<File Source="..\..\AddIns\AddIns\Misc\AddinScout\AddinScout.dll" Name="ADDINS_1.DLL" Id="AddinScout.dll" LongName="AddinScout.dll" />
<File Source="..\..\AddIns\AddIns\Misc\AddinScout\AddinScout.dll" Name="ADDINS_1.DLL" Id="AddinScout.dll" LongName="AddinScout.dll" Assembly=".net" AssemblyApplication="AddinScout.dll" AssemblyManifest="AddinScout.dll" KeyPath="yes" />
<File Source="..\..\AddIns\AddIns\Misc\AddinScout\AddInScout.addin" Name="ADDINS_1.ADD" Id="AddInScout.addin" LongName="AddInScout.addin" />
</Component>
</Directory>
<Directory Id="CodeAnalysisFolder" LongName="CodeAnalysis" Name="Analysis">
<Component Guid="6CF33D51-953D-4E5F-840C-7FDCFD757520" Id="CodeAnalysisFiles" DiskId="1">
<File Source="..\..\AddIns\AddIns\Misc\CodeAnalysis\CodeAnalysis.dll" Name="CODEAN_1.DLL" Id="CodeAnalysis.dll" LongName="CodeAnalysis.dll" />
<File Source="..\..\AddIns\AddIns\Misc\CodeAnalysis\CodeAnalysis.dll" Name="CODEAN_1.DLL" Id="CodeAnalysis.dll" LongName="CodeAnalysis.dll" Assembly=".net" AssemblyApplication="CodeAnalysis.dll" AssemblyManifest="CodeAnalysis.dll" KeyPath="yes" />
<File Source="..\..\AddIns\AddIns\Misc\CodeAnalysis\CodeAnalysis.addin" Name="CODEAN_1.ADD" Id="CodeAnalysis.addin" LongName="CodeAnalysis.addin" />
</Component>
</Directory>
<Directory Id="ComponentInspectorAddInFolder" LongName="ComponentInspector" Name="CompInsp">
<Component Guid="C3CBE9CD-ED60-4B07-9082-D5D31755C388" Id="ComponentInspectorAddInFiles" DiskId="1">
<File Source="..\..\AddIns\AddIns\Misc\ComponentInspector\ComponentInspector.Core.dll" Name="COMPON_1.DLL" Id="ComponentInspector.Core.dll" LongName="ComponentInspector.Core.dll" />
<Component Guid="2056340F-5471-422D-8901-9DC385D145AA" Id="ComponentInspectorAddInCoreDll" DiskId="1">
<File Source="..\..\AddIns\AddIns\Misc\ComponentInspector\ComponentInspector.Core.dll" Name="COMPON_1.DLL" Id="ComponentInspector.Core.dll" LongName="ComponentInspector.Core.dll" Assembly=".net" AssemblyApplication="ComponentInspector.Core.dll" AssemblyManifest="ComponentInspector.Core.dll" KeyPath="yes" />
</Component>
<Component Guid="C3CBE9CD-ED60-4B07-9082-D5D31755C388" Id="ComponentInspectorAddInDll" DiskId="1">
<File Source="..\..\AddIns\AddIns\Misc\ComponentInspector\ComponentInspector.addin" Name="COMPON_1.ADD" Id="ComponentInspector.addin" LongName="ComponentInspector.addin" />
<File Source="..\..\AddIns\AddIns\Misc\ComponentInspector\ComponentInspector.AddIn.dll" Name="COMPON_2.DLL" Id="ComponentInspector.AddIn.dll" LongName="ComponentInspector.AddIn.dll" />
<File Source="..\..\AddIns\AddIns\Misc\ComponentInspector\ComponentInspector.AddIn.dll" Name="COMPON_2.DLL" Id="ComponentInspector.AddIn.dll" LongName="ComponentInspector.AddIn.dll" Assembly=".net" AssemblyApplication="ComponentInspector.AddIn.dll" AssemblyManifest="ComponentInspector.AddIn.dll" KeyPath="yes" />
</Component>
</Directory>
<Directory Id="DebuggerFolder" LongName="Debugger" Name="Debug">
@ -774,14 +916,14 @@ @@ -774,14 +916,14 @@
</Component>
</Directory>
<Component Guid="6FF1EF46-B5FF-444D-879F-0E56640CABD7" Id="FiletypeRegistererFiles" DiskId="1">
<File Source="..\..\AddIns\AddIns\Misc\FiletypeRegisterer\ICSharpCode.FiletypeRegisterer.dll" Name="ICSHAR_1.DLL" Id="ICSharpCode.FiletypeRegisterer.dll" LongName="ICSharpCode.FiletypeRegisterer.dll" />
<File Source="..\..\AddIns\AddIns\Misc\FiletypeRegisterer\ICSharpCode.FiletypeRegisterer.dll" Name="ICSHAR_1.DLL" Id="ICSharpCode.FiletypeRegisterer.dll" LongName="ICSharpCode.FiletypeRegisterer.dll" Assembly=".net" AssemblyApplication="ICSharpCode.FiletypeRegisterer.dll" AssemblyManifest="ICSharpCode.FiletypeRegisterer.dll" KeyPath="yes" />
<File Source="..\..\AddIns\AddIns\Misc\FiletypeRegisterer\FiletypeRegisterer.addin" Name="FILETY_1.ADD" Id="FiletypeRegisterer.addin" LongName="FiletypeRegisterer.addin" />
</Component>
</Directory>
<Directory Id="HighlightingEditorFolder" LongName="HighlightingEditor" Name="Highlite">
<Component Guid="6F792AF7-4622-40DF-8CE3-270D66A7A7EC" Id="HighlightingEditorFiles" DiskId="1">
<File Source="..\..\AddIns\AddIns\Misc\HighlightingEditor\HighlightingEditor.addin" Name="HIGHLI_1.ADD" Id="HighlightingEditor.addin" LongName="HighlightingEditor.addin" />
<File Source="..\..\AddIns\AddIns\Misc\HighlightingEditor\HighlightingEditor.dll" Name="HIGHLI_1.DLL" Id="HighlightingEditor.dll" LongName="HighlightingEditor.dll" />
<File Source="..\..\AddIns\AddIns\Misc\HighlightingEditor\HighlightingEditor.dll" Name="HIGHLI_1.DLL" Id="HighlightingEditor.dll" LongName="HighlightingEditor.dll" Assembly=".net" AssemblyApplication="HighlightingEditor.dll" AssemblyManifest="HighlightingEditor.dll" KeyPath="yes" />
</Component>
</Directory>
<Directory Id="HtmlHelpFolder" LongName="HtmlHelp2" Name="Help">
@ -798,81 +940,107 @@ @@ -798,81 +940,107 @@
<Directory Id="MonoAddInFolder" LongName="MonoAddIn" Name="Mono">
<Component Guid="1BF9CC7D-360C-4F48-A407-9CAF86BE85E7" Id="MonoAddInFiles" DiskId="1">
<File Source="..\..\AddIns\AddIns\Misc\MonoAddIn\MonoAddIn.addin" Name="MONOAD_1.ADD" Id="MonoAddIn.addin" LongName="MonoAddIn.addin" />
<File Source="..\..\AddIns\AddIns\Misc\MonoAddIn\MonoAddIn.dll" Name="MONOAD_1.DLL" Id="MonoAddIn.dll" LongName="MonoAddIn.dll" />
<File Source="..\..\AddIns\AddIns\Misc\MonoAddIn\MonoAddIn.dll" Name="MONOAD_1.DLL" Id="MonoAddIn.dll" LongName="MonoAddIn.dll" Assembly=".net" AssemblyApplication="MonoAddIn.dll" AssemblyManifest="MonoAddIn.dll" KeyPath="yes" />
</Component>
</Directory>
<Directory Id="NAntAddInFolder" LongName="NAntAddIn" Name="NAnt">
<Component Guid="36B5B3BF-49CD-4EFA-B749-136F4ECD6492" Id="NAntAddInFiles" DiskId="1">
<File Source="..\..\AddIns\AddIns\Misc\NAntAddIn\NAnt.addin" Name="NAnt.add" Id="NAnt.addin" />
<File Source="..\..\AddIns\AddIns\Misc\NAntAddIn\NAntAddIn.dll" Name="NANTAD_1.DLL" Id="NAntAddIn.dll" LongName="NAntAddIn.dll" />
<File Source="..\..\AddIns\AddIns\Misc\NAntAddIn\NAntAddIn.dll" Name="NANTAD_1.DLL" Id="NAntAddIn.dll" LongName="NAntAddIn.dll" Assembly=".net" AssemblyApplication="NAntAddIn.dll" AssemblyManifest="NAntAddIn.dll" KeyPath="yes" />
</Component>
</Directory>
<Directory Id="PInvokeAddInFolder" LongName="PInvokeAddIn" Name="PInvoke">
<Component Guid="09DC988A-373E-4147-BA35-AF6BF0047B1A" Id="PInvokeAddInFiles" DiskId="1">
<File Source="..\..\AddIns\AddIns\Misc\PInvokeAddIn\signatures.xml" Name="SIGNAT_1.XML" Id="signatures.xml" LongName="signatures.xml" />
<File Source="..\..\AddIns\AddIns\Misc\PInvokeAddIn\PInvoke.addin" Name="PINVOKE.ADD" Id="PInvoke.addin" LongName="PInvoke.addin" />
<File Source="..\..\AddIns\AddIns\Misc\PInvokeAddIn\PInvokeAddIn.dll" Name="PINVOK_1.DLL" Id="PInvokeAddIn.dll" LongName="PInvokeAddIn.dll" />
<File Source="..\..\AddIns\AddIns\Misc\PInvokeAddIn\PInvokeAddIn.dll" Name="PINVOK_1.DLL" Id="PInvokeAddIn.dll" LongName="PInvokeAddIn.dll" Assembly=".net" AssemblyApplication="PInvokeAddIn.dll" AssemblyManifest="PInvokeAddIn.dll" KeyPath="yes" />
</Component>
</Directory>
<Directory Id="RegExToolkitFolder" Name="RegExpTk">
<Component Guid="B934ABC3-AD9B-4DC3-B0EE-1CA5AF2B8F82" Id="RegExToolkitFiles" DiskId="1">
<File Source="..\..\AddIns\AddIns\Misc\RegExpTk\RegExpTk.addin" Name="REGEXPTK.ADD" Id="RegExpTk.addin" LongName="RegExpTk.addin" />
<File Source="..\..\AddIns\AddIns\Misc\RegExpTk\RegExpTk.dll" Name="RegExpTk.dll" Id="RegExpTk.dll" />
<File Source="..\..\AddIns\AddIns\Misc\RegExpTk\RegExpTk.dll" Name="RegExpTk.dll" Id="RegExpTk.dll" Assembly=".net" AssemblyApplication="RegExpTk.dll" AssemblyManifest="RegExpTk.dll" KeyPath="yes" />
</Component>
</Directory>
<Directory Id="SharpDbToolsFolder" LongName="SharpDbTools" Name="SharpDb">
<Component Guid="575D909D-CC33-42CE-B0B8-BB2451F73745" Id="SharpDbToolsFiles" DiskId="1">
<File Source="..\..\AddIns\AddIns\Misc\SharpDbTools\SharpDbTools.addin" Name="SHARPD_1.ADD" Id="SharpDbTools.addin" LongName="SharpDbTools.addin" />
<File Source="..\..\AddIns\AddIns\Misc\SharpDbTools\SharpDbTools.dll" Name="SHARPD_1.DLL" Id="SharpDbTools.dll" LongName="SharpDbTools.dll" />
<File Source="..\..\AddIns\AddIns\Misc\SharpDbTools\SharpDbTools.dll" Name="SHARPD_1.DLL" Id="SharpDbTools.dll" LongName="SharpDbTools.dll" Assembly=".net" AssemblyApplication="SharpDbTools.dll" AssemblyManifest="SharpDbTools.dll" KeyPath="yes" />
</Component>
</Directory>
<Directory Id="SharpQueryFolder" LongName="SharpQuery" Name="Query">
<Component Guid="94E2FFCE-B59A-4CB8-90C5-A68FEE705DBA" Id="SharpQueryFiles" DiskId="1">
<File Source="..\..\AddIns\AddIns\Misc\SharpQuery\SharpQuery.dll" Name="SHARPQ_1.DLL" Id="SharpQuery.dll" LongName="SharpQuery.dll" />
<File Source="..\..\AddIns\AddIns\Misc\SharpQuery\Interop.MSDASC.dll" Name="INTERO_1.DLL" Id="Interop.MSDASC.dll" LongName="Interop.MSDASC.dll" />
<Component Guid="94E2FFCE-B59A-4CB8-90C5-A68FEE705DBA" Id="SharpQueryDll" DiskId="1">
<File Source="..\..\AddIns\AddIns\Misc\SharpQuery\SharpQuery.dll" Name="SHARPQ_1.DLL" Id="SharpQuery.dll" LongName="SharpQuery.dll" Assembly=".net" AssemblyApplication="SharpQuery.dll" AssemblyManifest="SharpQuery.dll" KeyPath="yes" />
<File Source="..\..\AddIns\AddIns\Misc\SharpQuery\SharpQuery.addin" Name="SHARPQ_1.ADD" Id="SharpQuery.addin" LongName="SharpQuery.addin" />
</Component>
<Component Id="SharpQueryInteropMSDASCDll" Guid="8DA4305C-74C1-4DB7-BE05-9ED5B92ADA73" DiskId="1">
<File Source="..\..\AddIns\AddIns\Misc\SharpQuery\Interop.MSDASC.dll" Name="INTERO_1.DLL" Id="Interop.MSDASC.dll" LongName="Interop.MSDASC.dll" Assembly=".net" AssemblyApplication="Interop.MSDASC.dll" AssemblyManifest="Interop.MSDASC.dll" KeyPath="yes" />
</Component>
</Directory>
<Directory Id="SharpReportFolder" LongName="SharpReport" Name="Report">
<Component Guid="FCC330AE-1BA6-49AB-8D75-6B056EEBD00D" Id="SharpReportFiles" DiskId="1">
<File Source="..\..\AddIns\AddIns\Misc\SharpReport\SharpReportCore.dll" Name="SHARPR_1.DLL" Id="SharpReportCore.dll" LongName="SharpReportCore.dll" />
<Component Guid="FCC330AE-1BA6-49AB-8D75-6B056EEBD00D" Id="SharpReportCoreDll" DiskId="1">
<File Source="..\..\AddIns\AddIns\Misc\SharpReport\SharpReportCore.dll" Name="SHARPR_1.DLL" Id="SharpReportCore.dll" LongName="SharpReportCore.dll" Assembly=".net" AssemblyApplication="SharpReportCore.dll" AssemblyManifest="SharpReportCore.dll" KeyPath="yes" />
</Component>
<Component Id="ReportGeneratorDll" Guid="4A37F852-2BBC-40C5-AF32-6DAB8DB5075A" DiskId="1">
<File Source="..\..\AddIns\AddIns\Misc\SharpReport\ReportGenerator.dll" Name="REPORT_1.DLL" Id="ReportGenerator.dll" LongName="ReportGenerator.dll" Assembly=".net" AssemblyApplication="ReportGenerator.dll" AssemblyManifest="ReportGenerator.dll" KeyPath="yes" />
<File Source="..\..\AddIns\AddIns\Misc\SharpReport\ReportGenerator.addin" Name="REPORT_1.ADD" Id="ReportGenerator.addin" LongName="ReportGenerator.addin" />
<File Source="..\..\AddIns\AddIns\Misc\SharpReport\ReportGenerator.dll" Name="REPORT_1.DLL" Id="ReportGenerator.dll" LongName="ReportGenerator.dll" />
<File Source="..\..\AddIns\AddIns\Misc\SharpReport\SharpReport.dll" Name="SHARPR_2.DLL" Id="SharpReport.dll" LongName="SharpReport.dll" />
</Component>
<Component Id="SharpReportDll" Guid="00331644-0A6F-4469-AEE5-2FCEED4F1651" DiskId="1">
<File Source="..\..\AddIns\AddIns\Misc\SharpReport\SharpReport.dll" Name="SHARPR_2.DLL" Id="SharpReport.dll" LongName="SharpReport.dll" Assembly=".net" AssemblyApplication="SharpReport.dll" AssemblyManifest="SharpReport.dll" KeyPath="yes" />
</Component>
<Component Id="SharpReportAddInDll" Guid="9EC747D8-EA22-4C6B-8694-D7FA8029AE46" DiskId="1">
<File Source="..\..\AddIns\AddIns\Misc\SharpReport\SharpReportAddin.addin" Name="SHARPR_1.ADD" Id="SharpReportAddin.addin" LongName="SharpReportAddin.addin" />
<File Source="..\..\AddIns\AddIns\Misc\SharpReport\SharpReportAddin.dll" Name="SHARPR_3.DLL" Id="SharpReportAddin.dll" LongName="SharpReportAddin.dll" />
<File Source="..\..\AddIns\AddIns\Misc\SharpReport\SharpReportAddin.dll" Name="SHARPR_3.DLL" Id="SharpReportAddin.dll" LongName="SharpReportAddin.dll" Assembly=".net" AssemblyApplication="SharpReportAddin.dll" AssemblyManifest="SharpReportAddin.dll" KeyPath="yes" />
</Component>
</Directory>
<Directory Id="StartPageAddInFolder" LongName="StartPage" Name="StartPg">
<Component Guid="220967E5-D5AA-4207-9757-79599222D5CF" Id="StartPageAddInFiles" DiskId="1">
<File Source="..\..\AddIns\AddIns\Misc\StartPage\StartPage.dll" Name="STARTP_1.DLL" Id="StartPage.dll" LongName="StartPage.dll" />
<File Source="..\..\AddIns\AddIns\Misc\StartPage\StartPage.dll" Name="STARTP_1.DLL" Id="StartPage.dll" LongName="StartPage.dll" Assembly=".net" AssemblyApplication="StartPage.dll" AssemblyManifest="StartPage.dll" KeyPath="yes" />
<File Source="..\..\AddIns\AddIns\Misc\StartPage\StartPage.addin" Name="STARTP_1.ADD" Id="StartPage.addin" LongName="StartPage.addin" />
</Component>
</Directory>
<Directory Id="SubversionAddInFolder" LongName="SubversionAddIn" Name="Svn">
<Component Guid="C9B1D523-5674-4398-9073-20F57B45DD46" Id="SubversionAddInFiles" DiskId="1">
<File Source="..\..\AddIns\AddIns\Misc\SubversionAddin\Utils.dll" Name="Utils.dll" Id="Utils.dll" />
<File Source="..\..\AddIns\AddIns\Misc\SubversionAddin\ICSharpCode.Svn.addin" Name="ICSHAR_1.ADD" Id="ICSharpCode.Svn.addin" LongName="ICSharpCode.Svn.addin" />
<Component Id="SubversionUtilsDll" Guid="0FEF5BBC-A97C-4BB9-BEC2-759388E5572D" DiskId="1">
<File Source="..\..\AddIns\AddIns\Misc\SubversionAddin\Utils.dll" Name="Utils.dll" Id="Utils.dll" Assembly=".net" AssemblyApplication="NSvn.Common.dll" AssemblyManifest="NSvn.Common.dll" KeyPath="yes" />
</Component>
<Component Id="SubversionLibAprDll" Guid="E4EE12A6-0766-4C85-8E28-7D7DEFC3AFEE" DiskId="1">
<File Source="..\..\AddIns\AddIns\Misc\SubversionAddin\LIBAPR.DLL" Name="LIBAPR.DLL" Id="LIBAPR.DLL" />
</Component>
<Component Id="SubversionAprIconvDll" Guid="1494C120-502D-4108-897F-14BD0D601DD1" DiskId="1">
<File Source="..\..\AddIns\AddIns\Misc\SubversionAddin\LibAprIconv.Dll" Name="LIBAPR_1.DLL" Id="LibAprIconv.Dll" LongName="LibAprIconv.Dll" />
</Component>
<Component Id="SubversionLibAprUtilDll" Guid="7F963E06-7BF6-4D95-B6C7-443A5A8FC739" DiskId="1">
<File Source="..\..\AddIns\AddIns\Misc\SubversionAddin\LibAprUtil.Dll" Name="LIBAPR_2.DLL" Id="LibAprUtil.Dll" LongName="LibAprUtil.Dll" />
<File Source="..\..\AddIns\AddIns\Misc\SubversionAddin\LibDB42.dll" Name="LibDB42.dll" Id="LibDB42.dll" />
</Component>
<Component Id="SubversionLibDb44Dll" Guid="6A86A5F7-1E80-465D-82F4-B8064663F83A" DiskId="1">
<File Source="..\..\AddIns\AddIns\Misc\SubversionAddin\LibDB44.dll" Name="LibDB42.dll" Id="LibDB42.dll" />
</Component>
<Component Id="SubversionMsvcp70Dll" Guid="E4612BC7-DA35-403D-BCFE-BC04D797D801" DiskId="1">
<File Source="..\..\AddIns\AddIns\Misc\SubversionAddin\msvcp70.dll" Name="msvcp70.dll" Id="msvcp70.dll" />
</Component>
<Component Id="SubversionMsvcr70Dll" Guid="993F3D8A-DB4E-433E-92E4-FB46AF71488D" DiskId="1">
<File Source="..\..\AddIns\AddIns\Misc\SubversionAddin\msvcr70.dll" Name="msvcr70.dll" Id="msvcr70.dll" />
<File Source="..\..\AddIns\AddIns\Misc\SubversionAddin\NSvn.Common.dll" Name="NSVNC_1.DLL" Id="NSvn.Common.dll" LongName="NSvn.Common.dll" />
<File Source="..\..\AddIns\AddIns\Misc\SubversionAddin\NSvn.Core.dll" Name="NSVNC_2.DLL" Id="NSvn.Core.dll" LongName="NSvn.Core.dll" />
<File Source="..\..\AddIns\AddIns\Misc\SubversionAddin\SubversionAddIn.dll" Name="SUBVER_1.DLL" Id="SubversionAddIn.dll" LongName="SubversionAddIn.dll" />
</Component>
<Component Id="NSvnCommonDll" Guid="53B4D3C6-5A80-496E-8926-3A7060766068" DiskId="1">
<File Source="..\..\AddIns\AddIns\Misc\SubversionAddin\NSvn.Common.dll" Name="NSVNC_1.DLL" Id="NSvn.Common.dll" LongName="NSvn.Common.dll" Assembly=".net" AssemblyApplication="NSvn.Common.dll" AssemblyManifest="NSvn.Common.dll" KeyPath="yes" />
</Component>
<Component Id="NSvnCoreDll" Guid="5989C307-D92E-4973-89E0-2509E3306C09" DiskId="1">
<File Source="..\..\AddIns\AddIns\Misc\SubversionAddin\NSvn.Core.dll" Name="NSVNC_2.DLL" Id="NSvn.Core.dll" LongName="NSvn.Core.dll" Assembly=".net" AssemblyApplication="NSvn.Core.dll" AssemblyManifest="NSvn.Core.dll" KeyPath="yes" />
</Component>
<Component Guid="C9B1D523-5674-4398-9073-20F57B45DD46" Id="SubversionAddInDll" DiskId="1">
<File Source="..\..\AddIns\AddIns\Misc\SubversionAddin\SubversionAddIn.dll" Name="SUBVER_1.DLL" Id="SubversionAddIn.dll" LongName="SubversionAddIn.dll" Assembly=".net" AssemblyApplication="SubversionAddIn.dll" AssemblyManifest="SubversionAddIn.dll" KeyPath="yes" />
<File Source="..\..\AddIns\AddIns\Misc\SubversionAddin\ICSharpCode.Svn.addin" Name="ICSHAR_1.ADD" Id="ICSharpCode.Svn.addin" LongName="ICSharpCode.Svn.addin" />
</Component>
</Directory>
<Directory Id="UnitTestingFolder" LongName="UnitTesting" Name="UnitTest">
<Component Guid="F2F7F12D-1920-49BC-86B0-65B5A1B76516" Id="UnitTestingAddInFiles" DiskId="1">
<File Source="..\..\AddIns\AddIns\Misc\UnitTesting\UnitTesting.dll" Name="unittest.DLL" Id="UnitTesting.dll" LongName="UnitTesting.dll" />
<File Source="..\..\AddIns\AddIns\Misc\UnitTesting\UnitTesting.addin" Name="unittest.ADD" Id="UnitTesting.addin" LongName="UnitTesting.addin" />
<File Source="..\..\AddIns\AddIns\Misc\UnitTesting\UnitTesting.dll" Name="unittest.dll" Id="UnitTesting.dll" LongName="UnitTesting.dll" Assembly=".net" AssemblyApplication="UnitTesting.dll" AssemblyManifest="UnitTesting.dll" KeyPath="yes" />
<File Source="..\..\AddIns\AddIns\Misc\UnitTesting\UnitTesting.addin" Name="unittest.add" Id="UnitTesting.addin" LongName="UnitTesting.addin" />
</Component>
</Directory>
<Directory Id="CodeCoverageFolder" LongName="CodeCoverage" Name="Cover">
<Component Guid="86A8B8D1-9FFD-46A4-84F8-2BD530E1F83E" Id="CodeCoverageFiles" DiskId="1">
<File Source="..\..\AddIns\AddIns\Misc\CodeCoverage\CodeCoverage.dll" Name="ccover.dll" Id="CodeCoverage.dll" LongName="CodeCoverage.dll" />
<File Source="..\..\AddIns\AddIns\Misc\CodeCoverage\CodeCoverage.dll" Name="ccover.dll" Id="CodeCoverage.dll" LongName="CodeCoverage.dll" Assembly=".net" AssemblyApplication="CodeCoverage.dll" AssemblyManifest="CodeCoverage.dll" KeyPath="yes" />
<File Source="..\..\AddIns\AddIns\Misc\CodeCoverage\CodeCoverage.addin" Name="ccover.add" Id="CodeCoverage.addin" LongName="CodeCoverage.addin" />
</Component>
</Directory>
@ -880,13 +1048,14 @@ @@ -880,13 +1048,14 @@
</Directory>
</Directory>
<Component Guid="5212F79E-568F-426D-AFD2-FC93914D5CE9" Id="SharpDevelopWebsiteShortcut" DiskId="1">
<!--
<!--
The choice here is to either use the IniFile element to
generate the two website shortcuts or create a
SharpDevelop.url file on disk and use a File element and
link to the file instead.
link to the file instead. We will use a file otherwise an
upgrade will not remove the existing website shortcut.
-->
<IniFile Id="SharpDevelop.url" Key="URL" Action="addLine" Directory="INSTALLDIR" LongName="SharpDevelop.url" Name="SharpDev.url" Value="http://www.icsharpcode.net/opensource/sd/" Section="InternetShortcut" />
<File Id="SharpDevelop.url" KeyPath="yes" Name="SharpDev.url" LongName="SharpDevelop.url" Source="SharpDevelop.url" />
<!--
ICE18 - Force the empty folder to be created. Even though it
has sub folders the validator flags this as an error.
@ -916,7 +1085,7 @@ @@ -916,7 +1085,7 @@
-->
<Registry Id="SharpDevelopExeStartMenuShortcutRegistryKey" Root="HKCU" KeyPath="yes" Key="Software\SharpDevelop2"/>
<Shortcut Name="SharpDev" LongName="SharpDevelop" Target="[!SharpDevelop.exe]" Id="SharpDevelopExeStartMenuShortcut" WorkingDirectory="BinFolder" Icon="SharpDevelopIcon.exe" Directory="SharpDevelopProgramMenuFolder" />
<IniFile Action="addLine" Directory="SharpDevelopProgramMenuFolder" Id="Website" Key="URL" Name="Website.url" Section="InternetShortcut" Value="http://www.icsharpcode.net/opensource/sd/" />
<Shortcut Name="Website" Target="[!SharpDevelop.url]" Id="SharpDevelopUrlStartMenuShortcut" WorkingDirectory="BinFolder" Directory="SharpDevelopProgramMenuFolder" />
<!--
Fix ICE64 by adding a remove folder element
http://windowssdk.msdn.microsoft.com/en-us/library/ms704358.aspx

141
src/Setup/Readme.txt

@ -0,0 +1,141 @@ @@ -0,0 +1,141 @@

SharpDevelop Setup Build Server Rules
-------------------------------------
All new .msi files are treated as major upgrades on the build server:
http://msdn.microsoft.com/library/en-us/msi/setup/major_upgrades.asp
1) Package code always changes for a new revision.
2) Product version is updated with the revision number.
3) Product code changed for a new revision.
4) Msi filename changed on each build. It includes the SharpDevelop version and revision.
Guid generation
---------------
The Guid generation is a pre-build step. This step runs the UpdateSetupInfo
tool. This tool creates new guids for the product code and the package code. It
also reads the current revision number and updates the installation. All this
information is stored in the SharpDevelop.Setup.wixproj.user file which is
generated each time when run from the build server. The Wix setup documents
have preprocessor variables $(var) that map to MSBuild properties. These MSBuild
properties are stored in the SharpDevelop.Setup.wixproj.user file.
The SharpDevelop.Setup.wixproj.user file is in the repository since but it is not
committed on each build. Therefore the Product Code guid is not stored anywhere
apart from the .msi itself. This maybe us a problem. The Upgrade Code is the
important guid and that is in the main Setup.wxs file and should not be changed.
It will be changed for SharpDevelop 3.0.
The UpdateSetupInfo tool is not used when building the SharpDevelop.Setup project,
this prevents us recreating Guids each time when building the project
from inside SharpDevelop. The buildSetup.bat does use the tool. The build server
also uses the tool.
The UpdateSetupInfo tool uses a template file SharpDevelop.Setup.wixproj.user.template
which is stored in the repository and has placeholders for the guids and revision
number.
If the build server generates two installer packages with the same revision number
but different Product code guids then the user can install two instances of
SharpDevelop 2.1 on their machine which we do not want. The UpdateSetupInfo
tool hopefully prevents this by not updating the product code guid if the
revision number has not changed. The last used revision number is stored
in the Setup\bin\REVISION file.
Why major instead of minor?
---------------------------
It allows us to make large changes to the installer, completely restructuring the
features, components, and renaming the .msi filename. Just renaming the .msi filename on
its own means the product code guid has to change. However the main reason is that
to use a minor upgrade so it upgrades the existing installation you have to use a command
line like:
msiexec /i SharpDevelop.msi REINSTALL=ALL REINSTALLMODE=vomus
Otherwise you just get a message informing you that there is an existing installation.
A major upgrade is more user friendly and will not need such a command line, it should
install just by double clicking the .msi.
SharpDevelop Setup Rules
------------------------
1) Each assembly (.exe, .dll) added gets its own Component. This includes any files that
logically belong to it (e.g. .config, .addin), but not any assemblies it uses (.exe, .dll).
For an added assembly the File element should look like:
<File Id="SharpDevelopExeId"
Name="SharpDev.exe"
LongName="SharpDevelop.exe"
Source="..\..\bin\SharpDevelop.exe"
Assembly=".net"
AssemblyApplication="SharpDevelopExeId"
AssemblyManifest="SharpDevelopExeId"
KeyPath="yes"/>
Note that the Id is typically just the filename, but the in the example I have
emphasised that AssemblyApplication and AssemblyManifest refer to the file id.
Windows Installer References
----------------------------
Windows Installer has a lot of rules that need to be followed when creating
setup packages. The main ones to look at the rules for adding/removing components.
The documentation is a bit confusing, some parts say that you need to generate
a new Component Guid when you add/remove a resource (file, registry, etc)
to/from a component. Other parts say that with Windows Installer v2 you can
add/remove resources without needing to regenerate a new guid.
SharpDevelop's installer will not allow side-by-side installations of
SharpDevelop 2.1. Each new installer will be able to upgrade all previous versions
from 2.1.0 upwards. Disallowing side-by-side installations should prevent any
problems if component Guids are not altered when they should be (see
What Happens if the Component Rules are Broken?)
SharpDevelop component rules:
1) Never the same resource into two different components.
2) All resources in a component must be installed into the same directory.
3) When adding a new file to an existing directory put it inside its own new
component. That is if a previous version of the installer has been released.
If you're adding a completely new addin this does not apply, each .exe and .dll
should be in its own component, but other files can be grouped.
4) Removing a file. According to the docs:
"you must also change the name or target location every resource in the component."
This is not a problem for .exe and .dlls since they should be in their own
component so you just remove the entire component. If you may remove
the resource at some point in the future, put it into its own component.
If you have to remove a file from an existing component change its guid and
hope nothing breaks.
Setup Package Validation
------------------------
Also use Orca (Part of the Windows 2003 Platform SDK) to test validate the
created msi file. Do not ignore any errors. Warnings need to be understood
before being ignored. ICE33 warnings can be ignored - see the Setup.wxs
file for more details.
http://msdn.microsoft.com/library/en-us/msi/setup/organizing_applications_into_components.asp
http://msdn.microsoft.com/library/en-us/msi/setup/changing_the_component_code.asp
http://msdn.microsoft.com/library/en-us/msi/setup/what_happens_if_the_component_rules_are_broken.asp
http://msdn.microsoft.com/library/en-us/msi/setup/defining_installer_components.asp
http://msdn.microsoft.com/library/en-us/msi/setup/assemblies.asp
http://msdn.microsoft.com/library/en-us/msi/setup/patching_and_upgrades.asp
http://msdn.microsoft.com/library/en-us/msi/setup/changing_the_product_code.asp
http://msdn.microsoft.com/library/en-us/msi/setup/minor_upgrades.asp
Rob Mensching also has some information about the component rules on his blog:
Windows Installer Components Introduction
http://blogs.msdn.com/robmen/archive/2003/10/04/56479.aspx
Component Rules 101
http://blogs.msdn.com/robmen/archive/2003/10/18/56497.aspx

322
src/Setup/Setup.wxs

@ -1,18 +1,39 @@ @@ -1,18 +1,39 @@
<!-- Installer for SharpDevelop -->
<!--
Installer for SharpDevelop.
-->
<Wix xmlns="http://schemas.microsoft.com/wix/2003/01/wi">
<Product Id="A0AB2551-A579-42D3-9A90-D6424B3AC2CD"
<!--
Windows Installer only recognises 3 digits for the product version (Major.Minor.Build)
so the third digit must be the Subversion revision.
-->
<Product Id="$(var.PRODUCTCODEGUID)"
Name="SharpDevelop 2.1"
Manufacturer="ic#code"
Language="1033"
Codepage="1252"
UpgradeCode="A1F371B6-4218-4F60-B01E-C996DF461B10"
Version="2.1.0.0">
Version="2.1.$(var.PRODUCTBUILDVERSION)">
<Package Id="DFC87BE9-A5A6-434D-97BA-F34BB1C1C1A7"
Description="SharpDevelop"
InstallerVersion="200"
<Package Id="$(var.PACKAGECODEGUID)"
Description="SharpDevelop 2.1.0.$(var.PRODUCTBUILDVERSION)"
InstallerVersion="300"
Compressed="yes"/>
<!-- Upgrade information -->
<Upgrade Id="A1F371B6-4218-4F60-B01E-C996DF461B10">
<!-- Checks for older versions -->
<UpgradeVersion Minimum="2.1.0"
IncludeMinimum="yes"
Maximum="2.1.$(var.PRODUCTBUILDVERSION)"
IncludeMaximum="no"
Property="PREVIOUSVERSIONFOUND"/>
<!-- Checks for newer versions -->
<UpgradeVersion OnlyDetect="yes"
Property="NEWERVERSIONFOUND"
Minimum="2.1.$(var.PRODUCTBUILDVERSION)"
IncludeMinimum="no"/>
</Upgrade>
<!-- Conditions to be satisfied before the installer begins.-->
<!--
Check for .NET 2.0
@ -78,7 +99,6 @@ @@ -78,7 +99,6 @@
<Property Id="ARPHELPLINK">http://community.sharpdevelop.net/forums/</Property>
<Property Id="ARPURLINFOABOUT">http://icsharpcode.net/OpenSource/SD/</Property>
<Property Id="ARPURLUPDATEINFO">http://icsharpcode.net/OpenSource/SD/Download/</Property>
<Property Id="ARPREADME" Value="[DocFolder]\readme.rtf"/>
<!-- Suppress the Modify button in the Control Panel's Add/Remove Programs -->
<!--
@ -105,88 +125,220 @@ @@ -105,88 +125,220 @@
each be a feature if the user wants to heavily customise the installation.
-->
<Feature Id="Complete" Level="1">
<ComponentRef Id="SharpDevelopExe"/>
<ComponentRef Id="SharpDevelopCoreFiles"/>
<ComponentRef Id="SharpDevelopDocFiles"/>
<ComponentRef Id="SharpDevelopTechNoteFiles"/>
<ComponentRef Id="ComponentInspectorFiles"/>
<ComponentRef Id="SharpDevelopProgramMenuItems"/>
<ComponentRef Id="DesktopFolderItems"/>
<ComponentRef Id="NDocFiles"/>
<ComponentRef Id="WixFiles"/>
<ComponentRef Id="WixBitmapFiles"/>
<ComponentRef Id="WixDocFiles"/>
<ComponentRef Id="WixIncFiles"/>
<ComponentRef Id="WixLibFiles"/>
<ComponentRef Id="NUnitFiles"/>
<ComponentRef Id="NUnitCoreDll"/>
<ComponentRef Id="NUnitFrameworkDll"/>
<ComponentRef Id="NUnitCoreGacDll"/>
<ComponentRef Id="NUnitFrameworkGacDll"/>
<ComponentRef Id="ConversionStyleSheetFiles"/>
<ComponentRef Id="TextLibOptionsFiles"/>
<ComponentRef Id="OptionsFiles"/>
<ComponentRef Id="CssFiles"/>
<ComponentRef Id="InstallerBitmapFiles"/>
<ComponentRef Id="LanguageBitmapFiles"/>
<ComponentRef Id="LayoutFiles"/>
<ComponentRef Id="StartPageLayoutBlueFiles"/>
<ComponentRef Id="StartPageLayoutBrownFiles"/>
<ComponentRef Id="StartPageLayoutCommonFiles"/>
<ComponentRef Id="StartPageLayoutGreenFiles"/>
<ComponentRef Id="StartPageLayoutOrangeFiles"/>
<ComponentRef Id="StartPageLayoutRedFiles"/>
<ComponentRef Id="StartPageLayoutFiles"/>
<ComponentRef Id="StringResourceFiles"/>
<ComponentRef Id="SchemaFiles"/>
<ComponentRef Id="CSharpFileTemplates"/>
<ComponentRef Id="VBNetFileTemplates"/>
<ComponentRef Id="MiscFileTemplates"/>
<ComponentRef Id="SharpDevelopFileTemplates"/>
<ComponentRef Id="CSharpProjectTemplates"/>
<ComponentRef Id="MiscProjectTemplates"/>
<ComponentRef Id="VBNetProjectTemplates"/>
<ComponentRef Id="ExampleProjectTemplate"/>
<ComponentRef Id="ICSharpCode.SharpDevelop.addin"/>
<ComponentRef Id="BooTemplateFiles"/>
<ComponentRef Id="BooBindingFiles"/>
<ComponentRef Id="CSharpBindingFiles"/>
<ComponentRef Id="ILAsmTemplates"/>
<ComponentRef Id="ILAsmBindingFiles"/>
<ComponentRef Id="VBNetBindingFiles"/>
<ComponentRef Id="WixBindingFiles"/>
<ComponentRef Id="WixBindingTemplates"/>
<ComponentRef Id="FormsDesignerFiles"/>
<ComponentRef Id="IconEditorFiles"/>
<ComponentRef Id="ResourceEditorFiles"/>
<ComponentRef Id="XmlEditorFiles"/>
<ComponentRef Id="AddInManagerFiles"/>
<ComponentRef Id="AddInScoutFiles"/>
<ComponentRef Id="CodeAnalysisFiles"/>
<ComponentRef Id="CodeCoverageFiles"/>
<ComponentRef Id="ComponentInspectorAddInFiles"/>
<ComponentRef Id="DebuggerAddInFiles"/>
<ComponentRef Id="FiletypeIcons"/>
<ComponentRef Id="FiletypeRegistererFiles"/>
<ComponentRef Id="HighlightingEditorFiles"/>
<ComponentRef Id="HtmlHelp2Files"/>
<ComponentRef Id="MonoAddInFiles"/>
<ComponentRef Id="NAntAddInFiles"/>
<ComponentRef Id="PInvokeAddInFiles"/>
<ComponentRef Id="RegExToolkitFiles"/>
<ComponentRef Id="SharpDbToolsFiles"/>
<ComponentRef Id="SharpQueryFiles"/>
<ComponentRef Id="SharpReportFiles"/>
<ComponentRef Id="StartPageAddInFiles"/>
<ComponentRef Id="SubversionAddInFiles"/>
<ComponentRef Id="UnitTestingAddInFiles"/>
<ComponentRef Id="SyntaxModesFiles"/>
<ComponentRef Id="SharpDevelopWebsiteShortcut"/>
<ComponentRef Id="SharpDevelopAppPathRegistrySetting"/>
<!--
The SharpDevelop application. This may at some point in the distant
future be further subdivided into addin features, but doing this
will mean a new ProductCode will need to be generated.
-->
<Feature Id="SharpDevelop" Level="1">
<ComponentRef Id="SharpDevelopExe"/>
<ComponentRef Id="SharpDevelopExeFiles"/>
<ComponentRef Id="SharpDevelopDocFiles"/>
<ComponentRef Id="ICSharpCodeBuildTasksDll"/>
<ComponentRef Id="BuildTasksTargetFiles"/>
<ComponentRef Id="ICSharpCodeCoreDll"/>
<ComponentRef Id="ICSharpCodeNRefactoryDll"/>
<ComponentRef Id="ICSharpCodeSharpDevelopDll"/>
<ComponentRef Id="ICSharpCodeSharpDevelopDomdll"/>
<ComponentRef Id="ICSharpCodeSharpDevelopSdaFiles"/>
<ComponentRef Id="ICSharpCodeTextEditorDll"/>
<ComponentRef Id="log4netDll"/>
<ComponentRef Id="MonoCecilDll"/>
<ComponentRef Id="MonoReflectionLoaderDll"/>
<ComponentRef Id="WeifenLuoWinFormsUIDockingDll"/>
<ComponentRef Id="SharpDevelopTechNoteFiles"/>
<ComponentRef Id="ComponentInspectorExe"/>
<ComponentRef Id="ComponentInspectorCoreDll"/>
<ComponentRef Id="ComponentInspectorICSharpCodeCoreDll"/>
<ComponentRef Id="ComponentInspectorLog4NetDll"/>
<ComponentRef Id="SharpDevelopProgramMenuItems"/>
<ComponentRef Id="DesktopFolderItems"/>
<ComponentRef Id="NDocGuiExe"/>
<ComponentRef Id="NDocMSHelpCompilerDll"/>
<ComponentRef Id="NDocCoreDll"/>
<ComponentRef Id="NDocDocumenterIntellisenseDll"/>
<ComponentRef Id="NDocDocumenterJavaDocDll"/>
<ComponentRef Id="NDocDocumenterLatexDll"/>
<ComponentRef Id="NDocDocumenterMsdn2Dll"/>
<ComponentRef Id="NDocDocumenterMsdnDll"/>
<ComponentRef Id="NDocDocumenterLinearHtmlDll"/>
<ComponentRef Id="NDocDocumenterNativeHtmlHelp2Dll"/>
<ComponentRef Id="NDocDocumenterXmlDll"/>
<ComponentRef Id="NDocExtendedUIDll"/>
<ComponentRef Id="NDocVisualStudioDll"/>
<ComponentRef Id="NDocConsoleExe"/>
<ComponentRef Id="WixLicenseFiles"/>
<ComponentRef Id="WixBitmapFiles"/>
<ComponentRef Id="WixDocFiles"/>
<ComponentRef Id="WixIncFiles"/>
<ComponentRef Id="WixLibFiles"/>
<ComponentRef Id="WixVSExtension"/>
<ComponentRef Id="CandleExe"/>
<ComponentRef Id="DarkExe"/>
<ComponentRef Id="LightExe"/>
<ComponentRef Id="LitExe"/>
<ComponentRef Id="MergeModDll"/>
<ComponentRef Id="MicrosoftToolsWindowsInstallerXmlNAntTasksDll"/>
<ComponentRef Id="NetFxWixLib"/>
<ComponentRef Id="NetFxCaDll"/>
<ComponentRef Id="PcaExecDll"/>
<ComponentRef Id="PcaExtDll"/>
<ComponentRef Id="PcaSchedDll"/>
<ComponentRef Id="PubCaWixLib"/>
<ComponentRef Id="ScaWixLib"/>
<ComponentRef Id="ScaExecDll"/>
<ComponentRef Id="ScashedDll"/>
<ComponentRef Id="TallowExe"/>
<ComponentRef Id="VsWixLib"/>
<ComponentRef Id="WInteropDll"/>
<ComponentRef Id="WixDll"/>
<ComponentRef Id="WixCaDll"/>
<ComponentRef Id="WixCaWixLib"/>
<ComponentRef Id="WixCopExe"/>
<ComponentRef Id="WixNetFxExtensionDll"/>
<ComponentRef Id="WixTasksDll"/>
<ComponentRef Id="WixUiWixLib"/>
<ComponentRef Id="WixLocalisationFiles"/>
<ComponentRef Id="NUnitCoreExtensionsDll"/>
<ComponentRef Id="NUnitUiKitDll"/>
<ComponentRef Id="NUnitUtilDll"/>
<ComponentRef Id="NUnitConsoleFiles"/>
<ComponentRef Id="NUnitCoreDll"/>
<ComponentRef Id="NUnitFrameworkDll"/>
<ComponentRef Id="NUnitCoreGacDll"/>
<ComponentRef Id="NUnitFrameworkGacDll"/>
<ComponentRef Id="NunitConsoleRunnerDll"/>
<ComponentRef Id="ConversionStyleSheetFiles"/>
<ComponentRef Id="TextLibOptionsFiles"/>
<ComponentRef Id="OptionsFiles"/>
<ComponentRef Id="CssFiles"/>
<ComponentRef Id="InstallerBitmapFiles"/>
<ComponentRef Id="LanguageBitmapFiles"/>
<ComponentRef Id="LayoutFiles"/>
<ComponentRef Id="StartPageLayoutBlueFiles"/>
<ComponentRef Id="StartPageLayoutBrownFiles"/>
<ComponentRef Id="StartPageLayoutCommonFiles"/>
<ComponentRef Id="StartPageLayoutGreenFiles"/>
<ComponentRef Id="StartPageLayoutOrangeFiles"/>
<ComponentRef Id="StartPageLayoutRedFiles"/>
<ComponentRef Id="StartPageLayoutFiles"/>
<ComponentRef Id="StringResourceFiles"/>
<ComponentRef Id="SchemaFiles"/>
<ComponentRef Id="CSharpFileTemplates"/>
<ComponentRef Id="VBNetFileTemplates"/>
<ComponentRef Id="MiscFileTemplates"/>
<ComponentRef Id="SharpDevelopFileTemplates"/>
<ComponentRef Id="CSharpProjectTemplates"/>
<ComponentRef Id="MiscProjectTemplates"/>
<ComponentRef Id="VBNetProjectTemplates"/>
<ComponentRef Id="ExampleProjectTemplate"/>
<ComponentRef Id="ICSharpCode.SharpDevelop.addin"/>
<ComponentRef Id="BooTemplateFiles"/>
<ComponentRef Id="BooBindingDll"/>
<ComponentRef Id="BoocExe"/>
<ComponentRef Id="NRefactoryToBooConverterDll"/>
<ComponentRef Id="BooBuildTasksDll"/>
<ComponentRef Id="BooLangUsefulDll"/>
<ComponentRef Id="BooLangParserDll"/>
<ComponentRef Id="BooLangInterpreterDll"/>
<ComponentRef Id="BooLangDll"/>
<ComponentRef Id="BooLangCompilerDll"/>
<ComponentRef Id="BooLangCodeDomDll"/>
<ComponentRef Id="BooBindingAddInDll"/>
<ComponentRef Id="CSharpBindingFiles"/>
<ComponentRef Id="ILAsmTemplates"/>
<ComponentRef Id="ILAsmBindingFiles"/>
<ComponentRef Id="VBNetBindingFiles"/>
<ComponentRef Id="WixBindingFiles"/>
<ComponentRef Id="WixBindingTemplates"/>
<ComponentRef Id="FormsDesignerFiles"/>
<ComponentRef Id="IconEditorAddInFiles"/>
<ComponentRef Id="IconEditorExe"/>
<ComponentRef Id="ResourceEditorFiles"/>
<ComponentRef Id="XmlEditorFiles"/>
<ComponentRef Id="AddInManagerFiles"/>
<ComponentRef Id="AddInManagerSharpZipLibDll"/>
<ComponentRef Id="AddInScoutFiles"/>
<ComponentRef Id="CodeAnalysisFiles"/>
<ComponentRef Id="CodeCoverageFiles"/>
<ComponentRef Id="ComponentInspectorAddInDll"/>
<ComponentRef Id="ComponentInspectorAddInCoreDll"/>
<ComponentRef Id="DebuggerAddInFiles"/>
<ComponentRef Id="FiletypeIcons"/>
<ComponentRef Id="FiletypeRegistererFiles"/>
<ComponentRef Id="HighlightingEditorFiles"/>
<ComponentRef Id="HtmlHelp2Files"/>
<ComponentRef Id="MonoAddInFiles"/>
<ComponentRef Id="NAntAddInFiles"/>
<ComponentRef Id="PInvokeAddInFiles"/>
<ComponentRef Id="RegExToolkitFiles"/>
<ComponentRef Id="SharpDbToolsFiles"/>
<ComponentRef Id="SharpQueryDll"/>
<ComponentRef Id="SharpQueryInteropMSDASCDll"/>
<ComponentRef Id="SharpReportCoreDll"/>
<ComponentRef Id="SharpReportDll"/>
<ComponentRef Id="ReportGeneratorDll"/>
<ComponentRef Id="SharpReportAddInDll"/>
<ComponentRef Id="StartPageAddInFiles"/>
<ComponentRef Id="SubversionAddInDll"/>
<ComponentRef Id="SubversionUtilsDll"/>
<ComponentRef Id="SubversionLibAprDll"/>
<ComponentRef Id="SubversionAprIconvDll"/>
<ComponentRef Id="SubversionLibAprUtilDll"/>
<ComponentRef Id="SubversionLibDb44Dll"/>
<ComponentRef Id="SubversionMsvcp70Dll"/>
<ComponentRef Id="SubversionMsvcr70Dll"/>
<ComponentRef Id="NSvnCommonDll"/>
<ComponentRef Id="NSvnCoreDll"/>
<ComponentRef Id="UnitTestingAddInFiles"/>
<ComponentRef Id="SyntaxModesFiles"/>
<ComponentRef Id="SharpDevelopWebsiteShortcut"/>
<ComponentRef Id="SharpDevelopAppPathRegistrySetting"/>
</Feature>
</Feature>
<!-- Using WixUI temporarily -->
<Property Id="WIXUI_INSTALLDIR">INSTALLDIR</Property>
<UIRef Id="WixUI_InstallDir"/>
<!--
If a newer version of SharpDevelop 2.1 is installed show an
error message.
This message is not displayed immediately, the FindRelatedProducts
action occurs well into the installation after the user has
configured everything.
-->
<CustomAction Id="NoDowngrade" Error="A later version of [ProductName] is already installed." />
<!-- Add RemoveExistingProducts action to install sequence so upgrades can work -->
<InstallExecuteSequence>
<!--
Display an error message if a newer version found.
Since the installer completely removes the existing SharpDevelop 2.1
downgrades would work without any problems, but for now we
inform the user that a newer version already exists.
-->
<Custom Action="NoDowngrade" After="FindRelatedProducts">NEWERVERSIONFOUND</Custom>
<!--
Removes the older version of SharpDevelop 2.1, if we are upgrading,
before installing the new version.
Unfortunately the user is not informed of this upgrade. I think
we need a custom dialog showing the old installation located and
the fact that it is going to be upgraded.
The best place to do this is after InstallFinalize however if we
do it then after we have removed a file from an addin, and changed
the Component Guid, the modified component is not installed. So
we make sure SharpDevelop is completely removed before installing
the newer version. This also covers us if we accidentally
modify a component but do not change its Guid.
http://msdn.microsoft.com/library/en-us/msi/setup/removeexistingproducts_action.asp
-->
<RemoveExistingProducts Before="InstallInitialize"/>
</InstallExecuteSequence>
</Product>
</Wix>

5
src/Setup/SharpDevelop.Setup.wixproj

@ -1,6 +1,5 @@ @@ -1,6 +1,5 @@
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<OutputName>SharpDevelop</OutputName>
<OutputType>package</OutputType>
<WixToolPath Condition=" '$(WixToolPath)' == '' ">$(SharpDevelopBinPath)\Tools\Wix</WixToolPath>
<ToolPath Condition=" '$(ToolPath)' == '' ">$(WixToolPath)</ToolPath>
@ -12,6 +11,8 @@ @@ -12,6 +11,8 @@
<WarningLevel>0</WarningLevel>
<TreatWarningsAsErrors>False</TreatWarningsAsErrors>
<LocalizedStringFile>..\..\bin\Tools\Wix\WixUI_en-us.wxl</LocalizedStringFile>
<PreBuildEvent>..\Tools\UpdateSetupInfo\bin\UpdateSetupInfo.exe</PreBuildEvent>
<RunPostBuildEvent>Always</RunPostBuildEvent>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<BaseOutputPath>obj\</BaseOutputPath>
@ -26,6 +27,7 @@ @@ -26,6 +27,7 @@
<Compile Include="Files.wxs" />
<WixLibrary Include="..\..\bin\Tools\Wix\wixui.wixlib" />
<Compile Include="NetFxExtension.wxs" />
<None Include="Readme.txt" />
</ItemGroup>
<ItemGroup>
<CompileExtension Include="WixNetFxExtension">
@ -38,5 +40,6 @@ @@ -38,5 +40,6 @@
<Class>Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler</Class>
</LinkExtension>
</ItemGroup>
<Import Project="$(MSBuildProjectFullPath).user" />
<Import Project="$(WixMSBuildExtensionsPath)\wix.targets" />
</Project>

9
src/Setup/SharpDevelop.Setup.wixproj.user

@ -0,0 +1,9 @@ @@ -0,0 +1,9 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<SetupProductBuildVersion>1</SetupProductBuildVersion>
<SetupProductCodeGuid>A0AB2551-A579-42D3-9A90-D6424B3AC2CD</SetupProductCodeGuid>
<SetupPackageCodeGuid>DFC87BE9-A5A6-434D-97BA-F34BB1C1C1A7</SetupPackageCodeGuid>
<OutputName>SharpDevelop2_2.1.0.$(SetupProductBuildVersion)</OutputName>
<DefineConstants>PACKAGECODEGUID=$(SetupPackageCodeGuid);PRODUCTCODEGUID=$(SetupProductCodeGuid);PRODUCTBUILDVERSION=$(SetupProductBuildVersion)</DefineConstants>
</PropertyGroup>
</Project>

9
src/Setup/SharpDevelop.Setup.wixproj.user.template

@ -0,0 +1,9 @@ @@ -0,0 +1,9 @@
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<SetupProductBuildVersion>$INSERTPRODUCTBUILDVERSION$</SetupProductBuildVersion>
<SetupProductCodeGuid>$INSERTPRODUCTCODEGUID$</SetupProductCodeGuid>
<SetupPackageCodeGuid>$INSERTPACKAGECODEGUID$</SetupPackageCodeGuid>
<OutputName>SharpDevelop2_2.1.0.$(SetupProductBuildVersion)</OutputName>
<DefineConstants>PACKAGECODEGUID=$(SetupPackageCodeGuid);PRODUCTCODEGUID=$(SetupProductCodeGuid);PRODUCTBUILDVERSION=$(SetupProductBuildVersion)</DefineConstants>
</PropertyGroup>
</Project>

2
src/Setup/SharpDevelop.url

@ -0,0 +1,2 @@ @@ -0,0 +1,2 @@
[InternetShortcut]
URL=http://www.icsharpcode.net/opensource/sd/

3
src/Setup/buildSetup.bat

@ -1,3 +1,4 @@ @@ -1,3 +1,4 @@
del "bin\SharpDevelop.msi"
del "bin\SharpDevelop*.msi"
"..\Tools\UpdateSetupInfo\bin\UpdateSetupInfo.exe"
%windir%\microsoft.net\framework\v2.0.50727\msbuild SharpDevelop.Setup.sln "/p:SharpDevelopBinPath=%CD%\..\..\bin"
@IF %ERRORLEVEL% NEQ 0 PAUSE

241
src/Tools/UpdateSetupInfo/Main.cs

@ -0,0 +1,241 @@ @@ -0,0 +1,241 @@
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <owner name="Matthew Ward" email="mrward@users.sourceforge.net"/>
// <version>$Revision$</version>
// </file>
using System;
using System.IO;
using System.Reflection;
using System.Text;
namespace UpdateSetupInfo
{
/// <summary>
/// Creates the SharpDevelop.Setup.wixproj.user file based on the
/// SharpDevelop.Setup.wixproj.user.template.
/// </summary>
class UpdateApplication
{
/// <summary>
/// Path to the setup project relative to the UpdateSetupInfo.exe file.
/// </summary>
const string SetupProjectFolderRelativePath = @"..\..\..\Setup";
/// <summary>
/// Name of the setup template file.
/// </summary>
const string SetupTemplateFileName = "SharpDevelop.Setup.wixproj.user.template";
/// <summary>
/// Name of the setup project user file that will be generated.
/// </summary>
const string SetupProjectUserFileName = "SharpDevelop.Setup.wixproj.user";
const int SetupTemplateFileNotFoundReturnCode = 1;
const int UpdateSetupInfoExceptionReturnCode = 2;
/// <summary>
/// The full filename including path to the setup template file.
/// </summary>
string setupTemplateFullFileName;
/// <summary>
/// The full filename including path to the setup project user file that
/// will be generated.
/// </summary>
string setupProjectUserFullFileName;
/// <summary>
/// The folder containing the UpdateSetupInfo application.
/// </summary>
string applicationFolder;
/// <summary>
/// The file that contains the last revision number used to update the
/// template.
/// </summary>
string previousRevisionFileName;
public UpdateApplication()
{
// Work out filenames.
applicationFolder = Path.GetDirectoryName(GetType().Assembly.Location);
string setupProjectFolder = Path.Combine(applicationFolder, SetupProjectFolderRelativePath);
setupProjectFolder = Path.GetFullPath(setupProjectFolder);
setupTemplateFullFileName = Path.Combine(setupProjectFolder, SetupTemplateFileName);
setupProjectUserFullFileName = Path.Combine(setupProjectFolder, SetupProjectUserFileName);
previousRevisionFileName = Path.Combine(setupProjectFolder, @"bin\REVISION");
// Set current directory to a folder that is in the repository.
Environment.CurrentDirectory = setupProjectFolder;
}
public static int Main(string[] args)
{
try {
UpdateApplication app = new UpdateApplication();
return app.Run();
} catch (Exception ex) {
Console.WriteLine(ex.ToString());
return UpdateApplication.UpdateSetupInfoExceptionReturnCode;
}
}
public int Run()
{
// Read setup template contents.
if (!SetupTemplateFileExists) {
Console.WriteLine(String.Concat(SetupTemplateFileName, " not found. Unable to update setup information."));
return SetupTemplateFileNotFoundReturnCode;
}
string template = ReadSetupTemplate();
// Get current revision.
string currentRevision = GetCurrentRevision();
if (RevisionExists(currentRevision)) {
Console.WriteLine(String.Concat("Not updating setup guids for previously seen revision ", currentRevision));
return 0;
}
// Populate setup template.
template = PopulateSetupTemplate(template, currentRevision);
// Create setup user file.
SaveSetupUserFile(template);
// Save revision.
SaveRevision(currentRevision);
return 0;
}
bool SetupUserFileExists {
get {
return File.Exists(setupProjectUserFullFileName);
}
}
bool SetupTemplateFileExists {
get {
return File.Exists(setupTemplateFullFileName);
}
}
string ReadSetupTemplate() {
using (StreamReader reader = new StreamReader(setupTemplateFullFileName, true)) {
return reader.ReadToEnd();
}
}
string PopulateSetupTemplate(string template, string revision)
{
string updatedTemplate = template.Replace("$INSERTPRODUCTBUILDVERSION$", revision);
updatedTemplate = updatedTemplate.Replace("$INSERTPRODUCTCODEGUID$", GetNewGuid());
return updatedTemplate.Replace("$INSERTPACKAGECODEGUID$", GetNewGuid());
}
string GetNewGuid()
{
return Guid.NewGuid().ToString().ToUpperInvariant();
}
void SaveSetupUserFile(string contents)
{
using (StreamWriter writer = new StreamWriter(setupProjectUserFullFileName, false, Encoding.UTF8)) {
writer.Write(contents);
}
}
/// <summary>
/// Writes the revision just used to generate the SharpDevelop.Setup.wixproj.user
/// file so we do not regenerate the product guid for the same revision.
/// </summary>
void SaveRevision(string revision)
{
using (StreamWriter writer = new StreamWriter(previousRevisionFileName, false, Encoding.UTF8)) {
writer.Write(revision);
}
}
/// <summary>
/// Code taken directly from UpdateAssemblyInfo and the paths slightly modified.
/// </summary>
/// <remarks>
/// The product build version maps to the Subversion revision number.
/// </remarks>
string GetCurrentRevision()
{
string revisionNumber = null;
string oldWorkingDir = Environment.CurrentDirectory;
try {
// Set working directory so msvcp70.dll and msvcr70.dll can be found
Environment.CurrentDirectory = Path.Combine(applicationFolder, @"..\..\..\AddIns\Misc\SubversionAddIn\RequiredLibraries");
Assembly asm = Assembly.LoadFrom(Path.Combine(Environment.CurrentDirectory, "NSvn.Core.dll"));
Type clientType = asm.GetType("NSvn.Core.Client");
object clientInstance = Activator.CreateInstance(clientType);
object statusInstance = clientType.InvokeMember("SingleStatus",
BindingFlags.Instance | BindingFlags.InvokeMethod | BindingFlags.Public,
null, clientInstance,
new object[] { oldWorkingDir });
Type statusType = statusInstance.GetType();
object entryInstance = statusType.InvokeMember("Entry",
BindingFlags.Instance | BindingFlags.GetProperty | BindingFlags.Public,
null, statusInstance, new object[0]);
Type entryType = entryInstance.GetType();
int revision = (int)entryType.InvokeMember("Revision",
BindingFlags.Instance | BindingFlags.GetProperty | BindingFlags.Public,
null, entryInstance, new object[0]);
revisionNumber = revision.ToString();
} catch (Exception e) {
Console.WriteLine("Reading revision number with NSvn failed: " + e.ToString());
} finally {
Environment.CurrentDirectory = oldWorkingDir;
}
if (revisionNumber == null || revisionNumber.Length == 0 || revisionNumber == "0") {
revisionNumber = ReadCurrentRevisionFromFile();
}
if (revisionNumber == null || revisionNumber.Length == 0 || revisionNumber == "0") {
throw new ApplicationException("Error reading revision number");
}
return revisionNumber;
}
string ReadCurrentRevisionFromFile()
{
using (StreamReader reader = new StreamReader(Path.Combine(applicationFolder, @"..\..\..\..\REVISION"))) {
return reader.ReadLine();
}
}
/// <summary>
/// Checks that the current revision matches the revision last used to
/// update the SharpDevelop.Setup.wixproj.user file.
/// </summary>
bool RevisionExists(string currentRevision)
{
// Read previous revision.
string previousRevision = ReadPreviousRevision();
if (previousRevision != null) {
return previousRevision == currentRevision;
}
return false;
}
/// <summary>
/// Reads the previous revision number from the Setup\bin\REVISION file.
/// </summary>
string ReadPreviousRevision()
{
if (File.Exists(previousRevisionFileName)) {
using (StreamReader reader = new StreamReader(previousRevisionFileName, true)) {
return reader.ReadLine();
}
}
return null;
}
}
}

44
src/Tools/UpdateSetupInfo/Readme.txt

@ -0,0 +1,44 @@ @@ -0,0 +1,44 @@

Updates the SharpDevelop Setup information
------------------------------------------
Product Revision (Subversion revision number)
Product Code Guid (Generating a new Guid for each build)
Package Code Guid (Each new msi gets a new Guid)
The build server and the buildSetup.bat executes the UpdateSetupInfo tool before
building SharpDevelop.Setup.sln. The SharpDevelop.Setup project does not use the tool.
Operation
---------
1) The SharpDevelop.Setup.wixproj.user is is generated each time the tool is run
based on the SharpDevelop.Setup.wixproj.user.template file. The product revision,
product code guid and package code guid are inserted into the newly generated
file. The last used revision is written to a REVISION file which is put in
the Setup\bin folder. This not in the repository and is only used to stop
the tool from regenerating the product guid if the revision number has not
changed.
2) The build server and buildSetup.bat will run the UpdateSetupInfo tool.
This is not done by the SharpDevelop.Setup project itself intentionally so
nothing changes when building the project from inside SharpDevelop. The
modified SharpDevelop.Setup.wixproj.user need not be checked into the
repository on each build on the build server.
3) The tool does not update the Guids if the revision number has not changed.
It detects the previously used revision number by reading the REVISION
file in the Setup\bin folder. It is important that Guids are not
regenerated when the revision number has not changed otherwise the
user can install two versions of SharpDevelop 2.1 side by side using
two different installers both for the same revision but each containing
different product guids.
Creating Releases
-----------------
When creating a release either the setup msi from the build server should be
used or that generated after running buildSetup.bat. This will update the
guids and revision number if the current revision has changed.

51
src/Tools/UpdateSetupInfo/UpdateSetupInfo.csproj

@ -0,0 +1,51 @@ @@ -0,0 +1,51 @@
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<OutputType>Exe</OutputType>
<RootNamespace>UpdateSetupInfo</RootNamespace>
<AssemblyName>UpdateSetupInfo</AssemblyName>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{75E6D78C-DC66-40F1-90AC-F9F97ADE3506}</ProjectGuid>
<AllowUnsafeBlocks>False</AllowUnsafeBlocks>
<NoStdLib>False</NoStdLib>
<RegisterForComInterop>False</RegisterForComInterop>
<GenerateSerializationAssemblies>Auto</GenerateSerializationAssemblies>
<BaseAddress>4194304</BaseAddress>
<PlatformTarget>AnyCPU</PlatformTarget>
<FileAlignment>4096</FileAlignment>
<WarningLevel>4</WarningLevel>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<OutputPath>bin</OutputPath>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<BaseIntermediateOutputPath>obj\</BaseIntermediateOutputPath>
<IntermediateOutputPath>obj\Debug\</IntermediateOutputPath>
<Optimize>False</Optimize>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<DebugSymbols>true</DebugSymbols>
<DebugType>Full</DebugType>
<CheckForOverflowUnderflow>True</CheckForOverflowUnderflow>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<BaseIntermediateOutputPath>obj\</BaseIntermediateOutputPath>
<IntermediateOutputPath>obj\Release\</IntermediateOutputPath>
<Optimize>True</Optimize>
<DefineConstants>TRACE</DefineConstants>
<DebugSymbols>False</DebugSymbols>
<DebugType>None</DebugType>
<CheckForOverflowUnderflow>False</CheckForOverflowUnderflow>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
</ItemGroup>
<ItemGroup>
<Compile Include="Main.cs" />
</ItemGroup>
<ItemGroup>
<Content Include="Readme.txt" />
<Content Include="UpdateSetupInfo.exe.manifest">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />
</Project>

14
src/Tools/UpdateSetupInfo/UpdateSetupInfo.exe.manifest

@ -0,0 +1,14 @@ @@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<description>Updates the setup version, product and package code guids in SharpDevelop.Setup.wixproj.user</description>
<!-- required because Vista otherwise thinks UpdateAssemblyInfo requires admin rights -->
<!-- because it contains the word "Update" -->
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>

16
src/Tools/UpdateSetupInfo/UpdateSetupInfo.sln

@ -0,0 +1,16 @@ @@ -0,0 +1,16 @@
Microsoft Visual Studio Solution File, Format Version 9.00
# SharpDevelop 2.1.0.1717
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UpdateSetupInfo", "UpdateSetupInfo.csproj", "{75E6D78C-DC66-40F1-90AC-F9F97ADE3506}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{75E6D78C-DC66-40F1-90AC-F9F97ADE3506}.Debug|Any CPU.Build.0 = Debug|Any CPU
{75E6D78C-DC66-40F1-90AC-F9F97ADE3506}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{75E6D78C-DC66-40F1-90AC-F9F97ADE3506}.Release|Any CPU.Build.0 = Release|Any CPU
{75E6D78C-DC66-40F1-90AC-F9F97ADE3506}.Release|Any CPU.ActiveCfg = Release|Any CPU
EndGlobalSection
EndGlobal
Loading…
Cancel
Save