Codebasis als Dateien ins Arbeitsrepo statt als Gitlink

QuellCode/CentronERP war nur als Gitlink (Submodul-Referenz auf 79c1142)
getrackt, ohne .gitmodules und ohne erreichbares Remote. Der
Untersuchungsgegenstand der Versuchsreihe war damit nicht reproduzierbar
gesichert: Ein Klon haette ein leeres Verzeichnis erhalten, und die Belege
der 3.287 Anforderungen waeren nicht ueberpruefbar gewesen.

Umstellung:
- Historie nach c:\DEV\CentronERP_git_snapshot_79c1142 ausgelagert
  (vollstaendig lesbar, enthaelt 79c1142 und Vorgaenger 89ccfd6)
- Gitlink aus dem Index entfernt
- Dateiinhalt aufgenommen: 24.557 Dateien, rund 333 MB

Die verschachtelte .gitignore der Codebasis gilt weiter, Build-Artefakte
bleiben ausgeschlossen. Details in Versuche/Versuch_01/_Codebasis-Nachweis.md
This commit is contained in:
Christoph Schwörer
2026-08-26 07:43:51 +02:00
parent 18edae75b6
commit f045b99a25
24664 changed files with 5846716 additions and 1 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 464 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

@@ -0,0 +1,90 @@
using System;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Runtime.CompilerServices;
using WixSharp;
using WixSharp.CommonTasks;
using WixSharp.Controls;
namespace WixSharpInstaller
{
class Program
{
static int Main()
{
try
{
// Validate input files
var sourceBaseDir = GetInputFileDirectoryPath();
if (Directory.GetFiles(sourceBaseDir).Any() == false)
throw new InvalidOperationException("The \"Files\" input directory is empty.");
// Create project with important properties
var project = new Project("c-entron Nexus");
project.GUID = new Guid("BBBE4001-00B1-41AC-B76F-CD2977F23A89");
project.SetVersionFromFile(Path.Combine(sourceBaseDir, "Files", "CentronNexus.Host.dll"));
project.MajorUpgrade = new MajorUpgrade() // This is basically MajorUpgrade.Default but with AllowSameVersionUpgrades set to true
{
Schedule = new UpgradeSchedule?(UpgradeSchedule.afterInstallInitialize),
DowngradeErrorMessage = "Eine neuere Version von [ProductName] ist bereits installiert.",
AllowSameVersionUpgrades = true // This is needed, to force major upgrades when we change only the 4th number in the version (MSI by default only checks the first 3 numbers)
};
project.SourceBaseDir = sourceBaseDir;
project.ReinstallMode = "amus"; // Make sure to always re-install all files (see commit message for more details)
project.Language = "de-DE";
project.ControlPanelInfo.Manufacturer = "NEXOWARE Systems GmbH";
// Add all files from the "Files" input directory
project.AddDir(new Dir("%ProgramFiles%\\c-entron software gmbh\\c-entron Nexus", new Files("Files\\*.*")));
// Install CentronNexus.exe as windows-service
project.ResolveWildCards().FindFirstFile("CentronNexus.Host.exe").ServiceInstaller = new ServiceInstaller
{
Name = "CentronNexus",
DisplayName = "NEXOWARE ServiceBoard",
Description = "Dieser Windows-Dienst startet NEXOWARE ServiceBoard, und damit alle Projekte die darin enthalten sind, wie z.B. das Web-Angebot oder das ServiceBoard.",
// Make the service start automatically with windows
Start = SvcStartType.auto,
// The documentation states that "Install" is the default value, but it's actually not correct, same for StopOn and RemoveOn
StartOn = SvcEvent.Install,
StopOn = SvcEvent.InstallUninstall_Wait,
RemoveOn = SvcEvent.Uninstall_Wait,
};
// Declare UI
project.UI = WUI.WixUI_InstallDir;
project.RemoveDialogsBetween(NativeDialogs.WelcomeDlg, NativeDialogs.InstallDirDlg); // Remove the license-agreement dialog from the WixUI_InstallDir default UI, its between the WelcomeDlg and the InstallDirDlg
project.BackgroundImage = "Images\\Installer-Background.bmp";
project.BannerImage = "Images\\Installer-Banner.bmp";
// Build MSI — set explicit output path to avoid ambiguity with relative working directory
var outputDir = Path.GetDirectoryName(typeof(Program).Assembly.Location)!;
project.OutFileName = Path.Combine(outputDir, "c-entron Nexus");
project.PreserveTempFiles = true;
Compiler.BuildMsi(project);
var msiPath = project.OutFileName + ".msi";
if (!System.IO.File.Exists(msiPath))
throw new FileNotFoundException($"MSI was not created at expected path: {msiPath}", msiPath);
Console.WriteLine($"MSI successfully created at: {msiPath}");
return 0;
}
#pragma warning disable CA1031
catch (Exception e)
#pragma warning restore CA1031
{
Console.WriteLine(e);
return 1;
}
}
private static string GetInputFileDirectoryPath([CallerFilePath] string callerFilePath = null)
{
return Path.GetDirectoryName(callerFilePath);
}
}
}
@@ -0,0 +1,15 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net10.0-windows</TargetFramework>
<Nullable>disable</Nullable>
<DefaultItemExcludes>$(DefaultItemExcludes);Files\**</DefaultItemExcludes>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="WixSharp.Core" Version="2.13.0" />
<PackageReference Remove="Nerdbank.GitVersioning" />
</ItemGroup>
</Project>
@@ -0,0 +1,72 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
<ProductVersion>3.10</ProductVersion>
<ProjectGuid>651e9627-5eb4-40a7-a9c5-042d529697b3</ProjectGuid>
<SchemaVersion>2.0</SchemaVersion>
<OutputName>c-entron.NET Installer</OutputName>
<OutputType>Package</OutputType>
<SccProjectName>SAK</SccProjectName>
<SccProvider>SAK</SccProvider>
<SccAuxPath>SAK</SccAuxPath>
<SccLocalPath>SAK</SccLocalPath>
<SuppressValidation>False</SuppressValidation>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<OutputPath>bin\$(Configuration)\</OutputPath>
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
<DefineConstants>Debug</DefineConstants>
<Cultures>de-DE</Cultures>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<OutputPath>bin\$(Configuration)\</OutputPath>
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
<Cultures>de-DE</Cultures>
</PropertyGroup>
<ItemGroup>
<Compile Include="CentronProductHeat.wxs" />
<Compile Include="Product.wxs" />
</ItemGroup>
<ItemGroup>
<WixExtension Include="WixUIExtension">
<HintPath>$(WixExtDir)\WixUIExtension.dll</HintPath>
<Name>WixUIExtension</Name>
</WixExtension>
<WixExtension Include="WixNetFxExtension">
<HintPath>$(WixExtDir)\WixNetFxExtension.dll</HintPath>
<Name>WixNetFxExtension</Name>
</WixExtension>
</ItemGroup>
<ItemGroup>
<Resource Include="Images\Installer-32.bmp" />
<Resource Include="Images\Installer-Background.bmp" />
<Resource Include="Images\Installer-16.bmp" />
<Resource Include="Images\Installer-Banner.bmp" />
<Resource Include="c-entron.ico" />
</ItemGroup>
<ItemGroup>
<Folder Include="Images" />
<Folder Include="Files" />
</ItemGroup>
<Import Project="$(WixTargetsPath)" Condition=" '$(WixTargetsPath)' != '' " />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets" Condition=" '$(WixTargetsPath)' == '' AND Exists('$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets') " />
<Target Name="EnsureWixToolsetInstalled" Condition=" '$(WixTargetsImported)' != 'true' ">
<Error Text="The WiX Toolset v3.11 (or newer) build tools must be installed to build this project. To download the WiX Toolset, see http://wixtoolset.org/releases/" />
</Target>
<Target Name="SignAppx">
<Exec Command="&quot;$(WixToolPath)\x86\signtool.exe&quot; sign /fd SHA256 /a /f &quot;E:\Tools\c-entron code signing.pfx&quot; /tr http://timestamp.digicert.com /p SignMe123! &quot;@(SignAppx)&quot;" />
</Target>
<PropertyGroup>
<PostBuildEvent />
</PropertyGroup>
<!--
To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Wix.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
Binary file not shown.

After

Width:  |  Height:  |  Size: 824 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 464 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

@@ -0,0 +1,149 @@
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
>
<!-- xmlns:fga="http://www.firegiant.com/schemas/v3/wxs/fgappx.xsd"-->
<Product Id="*" Name="c-entron.NET" Language="1031" Version="!(bind.FileVersion.filEC97C432D1DE88230FA1B149918B66B9)" Manufacturer="NEXOWARE Systems GmbH" UpgradeCode="{2CAB3D92-81D3-49F9-88E8-CA0DC66C2785}">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
<!--<fga:Appx Id="c-entron.NET" Publisher="CN=NEXOWARE Systems GmbH, O=NEXOWARE Systems GmbH, STREET=Einsteinstraße 59, L=Ulm, S=BW, PostalCode=89077, C=DE" Target="desktop" />-->
<Upgrade Id="{2CAB3D92-81D3-49F9-88E8-CA0DC66C2785}">
<!--Make sure we have every time a MajorUpgrade-->
<UpgradeVersion Property="NEWUPGRADEENTRY1" Maximum="!(bind.FileVersion.filEC97C432D1DE88230FA1B149918B66B9)" IncludeMaximum="yes" IncludeMinimum="yes" />
</Upgrade>
<MajorUpgrade DowngradeErrorMessage="Eine neuere Version von [ProductName] ist bereits installiert." AllowSameVersionUpgrades="no" MigrateFeatures="yes" Schedule="afterInstallInitialize" />
<MediaTemplate EmbedCab="yes" />
<Icon Id="centron.ico" SourceFile="c-entron.ico"/>
<Property Id="ARPPRODUCTICON" Value="centron.ico" />
<!-- Make sure to always re-install all files (see commit description for more details) -->
<Property Id="REINSTALLMODE" Value="amus" />
<WixVariable Id="WixUISupportPerUser" Value="0" />
<!--<WixVariable Id="WixUILicenseRtf" Value="" />-->
<WixVariable Id="WixUIBannerBmp" Value="Images\Installer-Banner.bmp"/>
<WixVariable Id="WixUIDialogBmp" Value="Images\Installer-Background.bmp" />
<!--<WixVariable Id="WixUIExclamationIco" Value="Images\Installer-32.bmp" />
<WixVariable Id="WixUIInfoIco" Value="Images\Installer-32.bmp" />
<WixVariable Id="WixUINewIco" Value="Images\Installer-16.bmp" />
<WixVariable Id="WixUIUpIco" Value="Images\Installer-16.bmp" />-->
<Property Id="WixAppFolder" Value="WixPerMachineFolder" />
<Property Id="WIXUI_INSTALLDIR" Value="APPLICATIONFOLDER" />
<Feature Id="ProductFeature" Title="c-entron.NET" Level="1">
<ComponentGroupRef Id="CentronProductComponentsHeat" />
<ComponentRef Id="ApplicationShortcutDesktop"/>
<ComponentRef Id="UrlProtocolRegistryComponent"/>
<ComponentRef Id="ClientRegistry"/>
</Feature>
<!--<UIRef Id="WixUI_Advanced" />-->
<UIRef Id="WixUI_ErrorProgressText" />
<!--Save the current installation folder into the registry-->
<Component Id="ClientRegistry" Guid="*" Directory="APPLICATIONFOLDER">
<RegistryKey Id="Hklm_CentronReg" Root="HKLM" Key="Software\[Manufacturer]\[ProductName]" ForceDeleteOnUninstall="yes">
<RegistryValue Name="InstallFolder" Type="string" Value="[APPLICATIONFOLDER]" KeyPath="yes" />
</RegistryKey>
</Component>
<!--Load the last installation folder from the registry-->
<Property Id="APPLICATIONFOLDER">
<RegistrySearch Id="InstallFolderSearch" Root="HKLM" Key="Software\[Manufacturer]\[ProductName]" Name="InstallFolder" Type="directory" />
</Property>
<!--Manage and customize UI from the c-entron.NET installation-->
<UIRef Id="WixUI_Common" />
<UI Id="WixUI_InstallDir">
<TextStyle Id="WixUI_Font_Normal" FaceName="Tahoma" Size="8" />
<TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" Size="12" />
<TextStyle Id="WixUI_Font_Title" FaceName="Tahoma" Size="9" Bold="yes" />
<Property Id="DefaultUIFont" Value="WixUI_Font_Normal" />
<Property Id="WixUI_Mode" Value="InstallDir" />
<DialogRef Id="BrowseDlg" />
<DialogRef Id="DiskCostDlg" />
<DialogRef Id="ErrorDlg" />
<DialogRef Id="FatalError" />
<DialogRef Id="FilesInUse" />
<DialogRef Id="MsiRMFilesInUse" />
<DialogRef Id="PrepareDlg" />
<DialogRef Id="ProgressDlg" />
<DialogRef Id="ResumeDlg" />
<DialogRef Id="UserExit" />
<Publish Dialog="BrowseDlg" Control="OK" Event="DoAction" Value="WixUIValidatePath" Order="3">1</Publish>
<Publish Dialog="BrowseDlg" Control="OK" Event="SpawnDialog" Value="InvalidDirDlg" Order="4"><![CDATA[WIXUI_INSTALLDIR_VALID<>"1"]]></Publish>
<Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" Value="Return" Order="999">1</Publish>
<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="InstallDirDlg">1</Publish>
<Publish Dialog="InstallDirDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg">1</Publish>
<Publish Dialog="InstallDirDlg" Control="Next" Event="SetTargetPath" Value="[WIXUI_INSTALLDIR]" Order="1">1</Publish>
<Publish Dialog="InstallDirDlg" Control="Next" Event="DoAction" Value="WixUIValidatePath" Order="2">NOT WIXUI_DONTVALIDATEPATH</Publish>
<Publish Dialog="InstallDirDlg" Control="Next" Event="SpawnDialog" Value="InvalidDirDlg" Order="3"><![CDATA[NOT WIXUI_DONTVALIDATEPATH AND WIXUI_INSTALLDIR_VALID<>"1"]]></Publish>
<Publish Dialog="InstallDirDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Order="4">WIXUI_DONTVALIDATEPATH OR WIXUI_INSTALLDIR_VALID="1"</Publish>
<Publish Dialog="InstallDirDlg" Control="ChangeFolder" Property="_BrowseProperty" Value="[WIXUI_INSTALLDIR]" Order="1">1</Publish>
<Publish Dialog="InstallDirDlg" Control="ChangeFolder" Event="SpawnDialog" Value="BrowseDlg" Order="2">1</Publish>
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="InstallDirDlg" Order="1">NOT Installed</Publish>
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg" Order="2">Installed</Publish>
<Publish Dialog="MaintenanceWelcomeDlg" Control="Next" Event="NewDialog" Value="MaintenanceTypeDlg">1</Publish>
<Publish Dialog="MaintenanceTypeDlg" Control="RepairButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
<Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
<Publish Dialog="MaintenanceTypeDlg" Control="Back" Event="NewDialog" Value="MaintenanceWelcomeDlg">1</Publish>
<Property Id="ARPNOMODIFY" Value="1" />
</UI>
<UI>
<ProgressText Action="NetFxExecuteNativeImageInstall">Start der c-entron.NET wird optimiert...</ProgressText>
</UI>
</Product>
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="ManufacturerFolder" Name="c-entron software gmbh">
<Directory Id="APPLICATIONFOLDER" Name="c-entron 2.0" />
</Directory>
</Directory>
<Directory Id="DesktopFolder" Name="Desktop">
<Component Id="ApplicationShortcutDesktop" Guid="*">
<Shortcut Id="ApplicationDesktopShortcut"
Name="c-entron.NET"
Target="[APPLICATIONFOLDER]c-entron 2.0.exe"
WorkingDirectory="APPLICATIONFOLDER"/>
<RemoveFolder Id="DesktopFolder" On="uninstall"/>
<RegistryValue
Root="HKCU"
Key="Software/MyAppName"
Name="installed"
Type="integer"
Value="1"
KeyPath="yes"/>
</Component>
</Directory>
</Directory>
<DirectoryRef Id="TARGETDIR">
<Component Id="UrlProtocolRegistryComponent" Guid="76be126e-9549-4dea-9615-585e187ea94a">
<RegistryKey Root="HKCR" Key="c-entron">
<RegistryValue Type="string" Name="URL Protocol" Value=""/>
<RegistryKey Key="shell\open\command">
<RegistryValue Type="string" Value="&quot;[APPLICATIONFOLDER]c-entron 2.0.exe&quot; &quot;%1&quot;" />
</RegistryKey>
</RegistryKey>
</Component>
</DirectoryRef>
</Fragment>
</Wix>
Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 824 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 464 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

@@ -0,0 +1,160 @@
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
>
<!-- xmlns:fga="http://www.firegiant.com/schemas/v3/wxs/fgappx.xsd"-->
<Product Id="*" Name="c-entron Web-Service" Language="1033" Version="!(bind.FileVersion.fil04C6E9A1324A0A1878612A211EC8F58D)" Manufacturer="NEXOWARE Systems GmbH" UpgradeCode="{600E09E4-BD28-495E-AA24-160432B235F8}">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />
<!--<fga:Appx Id="CentronWebService" Publisher="CN=NEXOWARE Systems GmbH, O=NEXOWARE Systems GmbH, STREET=Einsteinstraße 59, L=Ulm, S=BW, PostalCode=89077, C=DE" Target="desktop" />-->
<Upgrade Id="{600E09E4-BD28-495E-AA24-160432B235F8}">
<UpgradeVersion Property="NEWUPGRADEENTRY1" Maximum="!(bind.FileVersion.fil04C6E9A1324A0A1878612A211EC8F58D)" IncludeMaximum="yes" IncludeMinimum="yes" />
</Upgrade>
<MajorUpgrade DowngradeErrorMessage="Eine neuere Version von [ProductName] ist bereits installiert." AllowSameVersionUpgrades="no" Schedule="afterInstallInitialize" />
<MediaTemplate EmbedCab="yes" />
<WixVariable Id="WixUISupportPerUser" Value="0" />
<!--<WixVariable Id="WixUILicenseRtf" Value="" />-->
<WixVariable Id="WixUIBannerBmp" Value="Images\Installer-Banner.bmp"/>
<WixVariable Id="WixUIDialogBmp" Value="Images\Installer-Background.bmp" />
<!--<WixVariable Id="WixUIExclamationIco" Value="Images\Installer-32.bmp" />
<WixVariable Id="WixUIInfoIco" Value="Images\Installer-32.bmp" />
<WixVariable Id="WixUINewIco" Value="Images\Installer-16.bmp" />
<WixVariable Id="WixUIUpIco" Value="Images\Installer-16.bmp" />-->
<!--<Property Id="ApplicationFolderName" Value="c-entron software gmbh\c-entron 2.0" />-->
<!--<Property Id="ApplicationFolderName" Value="c-entron 2.0" />-->
<Property Id="WixAppFolder" Value="WixPerMachineFolder" />
<Property Id="WIXUI_INSTALLDIR" Value="APPLICATIONFOLDER" />
<!-- Make sure to always re-install all files (see commit description for more details) -->
<Property Id="REINSTALLMODE" Value="amus" />
<Feature Id="ProductFeature" Title="c-entron Web-Service" Level="1">
<ComponentGroupRef Id="WebServiceProductComponentsHeat" />
<ComponentRef Id="ApplicationShortcutDesktop"/>
<ComponentRef Id="ClientRegistry"/>
</Feature>
<!--Save the current installation folder into the registry-->
<Component Id="ClientRegistry" Guid="*" Directory="APPLICATIONFOLDER">
<RegistryKey Id="Hklm_CentronReg" Root="HKLM" Key="Software\[Manufacturer]\[ProductName]" ForceDeleteOnUninstall="yes">
<RegistryValue Name="InstallFolder" Type="string" Value="[APPLICATIONFOLDER]" KeyPath="yes" />
</RegistryKey>
</Component>
<!--Load the last installation folder from the registry-->
<Property Id="APPLICATIONFOLDER">
<RegistrySearch Id="InstallFolderSearch" Root="HKLM" Key="Software\[Manufacturer]\[ProductName]" Name="InstallFolder" Type="directory" />
</Property>
<!--<UIRef Id="WixUI_Advanced" />-->
<UIRef Id="WixUI_ErrorProgressText" />
<UIRef Id="WixUI_Common" />
<UI Id="WixUI_InstallDir">
<TextStyle Id="WixUI_Font_Normal" FaceName="Tahoma" Size="8" />
<TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" Size="12" />
<TextStyle Id="WixUI_Font_Title" FaceName="Tahoma" Size="9" Bold="yes" />
<Property Id="DefaultUIFont" Value="WixUI_Font_Normal" />
<Property Id="WixUI_Mode" Value="InstallDir" />
<DialogRef Id="BrowseDlg" />
<DialogRef Id="DiskCostDlg" />
<DialogRef Id="ErrorDlg" />
<DialogRef Id="FatalError" />
<DialogRef Id="FilesInUse" />
<DialogRef Id="MsiRMFilesInUse" />
<DialogRef Id="PrepareDlg" />
<DialogRef Id="ProgressDlg" />
<DialogRef Id="ResumeDlg" />
<DialogRef Id="UserExit" />
<Publish Dialog="BrowseDlg" Control="OK" Event="DoAction" Value="WixUIValidatePath" Order="3">1</Publish>
<Publish Dialog="BrowseDlg" Control="OK" Event="SpawnDialog" Value="InvalidDirDlg" Order="4"><![CDATA[WIXUI_INSTALLDIR_VALID<>"1"]]></Publish>
<Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" Value="Return" Order="999">1</Publish>
<Publish Dialog="ExitDialog" Control="Finish" Event="DoAction" Value="LaunchApplication">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed</Publish>
<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="InstallDirDlg">1</Publish>
<Publish Dialog="InstallDirDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg">1</Publish>
<Publish Dialog="InstallDirDlg" Control="Next" Event="SetTargetPath" Value="[WIXUI_INSTALLDIR]" Order="1">1</Publish>
<Publish Dialog="InstallDirDlg" Control="Next" Event="DoAction" Value="WixUIValidatePath" Order="2">NOT WIXUI_DONTVALIDATEPATH</Publish>
<Publish Dialog="InstallDirDlg" Control="Next" Event="SpawnDialog" Value="InvalidDirDlg" Order="3"><![CDATA[NOT WIXUI_DONTVALIDATEPATH AND WIXUI_INSTALLDIR_VALID<>"1"]]></Publish>
<Publish Dialog="InstallDirDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Order="4">WIXUI_DONTVALIDATEPATH OR WIXUI_INSTALLDIR_VALID="1"</Publish>
<Publish Dialog="InstallDirDlg" Control="ChangeFolder" Property="_BrowseProperty" Value="[WIXUI_INSTALLDIR]" Order="1">1</Publish>
<Publish Dialog="InstallDirDlg" Control="ChangeFolder" Event="SpawnDialog" Value="BrowseDlg" Order="2">1</Publish>
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="InstallDirDlg" Order="1">NOT Installed</Publish>
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg" Order="2">Installed</Publish>
<Publish Dialog="MaintenanceWelcomeDlg" Control="Next" Event="NewDialog" Value="MaintenanceTypeDlg">1</Publish>
<Publish Dialog="MaintenanceTypeDlg" Control="RepairButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
<Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
<Publish Dialog="MaintenanceTypeDlg" Control="Back" Event="NewDialog" Value="MaintenanceWelcomeDlg">1</Publish>
<!--<Publish Dialog="ExitDialog"
Control="Finish"
Event="DoAction"
Value="LaunchApplication">WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed</Publish>-->
<Property Id="ARPNOMODIFY" Value="1" />
</UI>
<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOX" Value="1" />
<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Value="c-entron Web-Service Konfigurator starten" />
<Property Id="WixShellExecTarget" Value="[APPLICATIONFOLDER]ConnectionManager\c-entron Connection Manager.exe" />
<CustomAction Id="LaunchApplication"
BinaryKey="WixCA"
DllEntry="WixShellExec"
Impersonate="yes" />
<UI>
<ProgressText Action="NetFxExecuteNativeImageInstall">Start des c-entron Web-Services wird optimiert...</ProgressText>
</UI>
<!--<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<MediaTemplate />
<Feature Id="ProductFeature" Title="WebServiceSetupProject" Level="1">
<ComponentGroupRef Id="ProductComponents" />
</Feature>-->
</Product>
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFilesFolder">
<Directory Id="ManufacturerFolder" Name="c-entron software gmbh">
<Directory Id="APPLICATIONFOLDER" Name="c-entron Web-Service">
</Directory>
<!--<Directory Id="APPLICATIONFOLDER" Name="ApplicationFolderName">
</Directory> for advanced ui-->
</Directory>
</Directory>
<Directory Id="DesktopFolder" Name="Desktop">
<Component Id="ApplicationShortcutDesktop" Guid="*">
<Shortcut Id="ApplicationDesktopShortcut"
Name="c-entron Connection Manager"
Target="[APPLICATIONFOLDER]ConnectionManager\c-entron Connection Manager.exe"
WorkingDirectory="dirCONNECTIONMANAGER"/>
<RemoveFolder Id="DesktopFolder" On="uninstall"/>
<RegistryValue
Root="HKCU"
Key="Software/MyAppName"
Name="installed"
Type="integer"
Value="1"
KeyPath="yes"/>
</Component>
</Directory>
</Directory>
</Fragment>
</Wix>
@@ -0,0 +1,51 @@
Um die gesamte Heat Datei neu zu erzeugen, nachfolgendes Kommando als ein PostBuild Event beim Projekt "Centron.WPF.UI" hinterlegen und Installer neu erzeugen. Nachfolgende Schritte nicht vergessen!
ACHTUNG: Vorgang darf nur durchgeführt werden, wenn Ausgabeverzeichnis dem "Release"-Verzeichnis entspricht. Ansonsten kommt zu viel in den Installer!!
Schritt 1: Über heat.exe die Referenzen der Applikation erneuern
"$(WiX)bin\heat.exe" dir "$(SolutionDir)Centron.Host.WindowsService\bin\$(Configuration)" -dr APPLICATIONFOLDER -cg WebServiceProductComponentsHeat -gg -g1 -sf -srd -sreg -scom -var "var.Centron.Host.WindowsService.TargetDir" -out "$(SolutionDir)WebServiceSetupProject\WebServiceProductHeat.wxs"
Schritt 2: Heat Datei öffnen
Schritt 3: Namespace für ngen hinzufügen:
xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension"
Beispiel:
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension">
Schritt 4: ngen auf die Centron.Host.WindowsService.exe einstellen
- Die Datei öffnen und folgende Zeile einfügen:
<netfx:NativeImage Id="ngen_fil04C6E9A1324A0A1878612A211EC8F58D" Dependencies="yes" Platform="64bit" Priority="0" />
Beispiel:
<Component Id="cmp54AD61A14FF27242E8B736BEDD206569" Directory="APPLICATIONFOLDER" Guid="59E9BDB6-A752-49B9-A2A6-DB10C1F4BD4B">
<File Id="fil04C6E9A1324A0A1878612A211EC8F58D" KeyPath="yes" Source="$(var.Centron.Host.WindowsService.TargetDir)\Centron.Host.WindowsService.exe">
<!-- Do not specify AppBaseDirectory here because ngen.exe will figure it out by itself. See: http://wixtoolset.org/documentation/manual/v3/xsd/netfx/nativeimage.html -->
<netfx:NativeImage Id="ngen_fil04C6E9A1324A0A1878612A211EC8F58D" Dependencies="yes" Platform="64bit" Priority="0" />
</File>
</Component>
Schritt 5: Folgende Components aktualisieren:
> Bei Centron.Host.WindowsService.exe.config Attribute "NeverOverwrite" und "Permanent" setzen. Ganze Komponente am besten übernehmen. Muss gleiche Guid weiterhin haben!
<Component Id="cmpE1CBAE5DF69973E9C8C0285CCD15049D" Directory="APPLICATIONFOLDER" Guid="D93F56E0-D63C-4077-8173-1FD5B18CF5ED" NeverOverwrite="yes" Permanent="yes">
<File Id="filA742DBEE5652A2AD5C07F3DA2B850FA9" KeyPath="yes" Source="$(var.Centron.Host.WindowsService.TargetDir)\Centron.Host.WindowsService.exe.config" />
</Component>
Schritt 6: Komponente für "FluentNHibernate.pdb" entfernen
Schritt 7: Registrierung des Services hinzufügen
- Bei der Komponente Centron.Host.WindowsService.exe folgende Zeilen hinzufügen:
<ServiceInstall Id="ServiceInstaller" Type="ownProcess" Name="CentronWebService" DisplayName="c-entron Web-Service" Description="c-entron Web-Service for access c-entron informations from outside" Start="auto" ErrorControl="normal" />
<ServiceControl Id="StartService" Stop="both" Remove="uninstall" Name="CentronWebService" Wait="yes" />
Beispiel:
<Component Id="cmp54AD61A14FF27242E8B736BEDD206569" Directory="APPLICATIONFOLDER" Guid="59E9BDB6-A752-49B9-A2A6-DB10C1F4BD4B">
<File Id="fil04C6E9A1324A0A1878612A211EC8F58D" KeyPath="yes" Source="$(var.Centron.Host.WindowsService.TargetDir)\Centron.Host.WindowsService.exe">
<!-- Do not specify AppBaseDirectory here because ngen.exe will figure it out by itself. See: http://wixtoolset.org/documentation/manual/v3/xsd/netfx/nativeimage.html -->
<netfx:NativeImage Id="ngen_fil04C6E9A1324A0A1878612A211EC8F58D" Dependencies="yes" Platform="64bit" Priority="0" />
</File>
<ServiceInstall Id="ServiceInstaller" Type="ownProcess" Name="CentronWebService" DisplayName="c-entron Web-Service" Description="c-entron Web-Service for access c-entron informations from outside" Start="auto" ErrorControl="normal" />
<ServiceControl Id="StartService" Stop="both" Remove="uninstall" Name="CentronWebService" Wait="yes" />
</Component>
@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
<ProductVersion>3.10</ProductVersion>
<ProjectGuid>8f65595b-29b0-461f-840e-37091f53046e</ProjectGuid>
<SchemaVersion>2.0</SchemaVersion>
<OutputName>c-entron Web-Service Installer</OutputName>
<OutputType>Package</OutputType>
<SccProjectName>SAK</SccProjectName>
<SccProvider>SAK</SccProvider>
<SccAuxPath>SAK</SccAuxPath>
<SccLocalPath>SAK</SccLocalPath>
<SuppressValidation>False</SuppressValidation>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<OutputPath>bin\$(Configuration)\</OutputPath>
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
<DefineConstants>Debug</DefineConstants>
<Cultures>de-DE</Cultures>
<LinkerAdditionalOptions />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<OutputPath>bin\$(Configuration)\</OutputPath>
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
<Cultures>de-DE</Cultures>
</PropertyGroup>
<ItemGroup>
<Compile Include="Product.wxs" />
<Compile Include="WebServiceProductHeat.wxs" />
</ItemGroup>
<ItemGroup>
<Folder Include="Images\" />
<Folder Include="Files" />
</ItemGroup>
<ItemGroup>
<Content Include="Images\Installer-16.bmp" />
<Content Include="Images\Installer-32.bmp" />
<Content Include="Images\Installer-Background.bmp" />
<Content Include="Images\Installer-Banner.bmp" />
<Content Include="RefreshHeatInfo.txt" />
</ItemGroup>
<ItemGroup>
<WixExtension Include="WixUtilExtension">
<HintPath>$(WixExtDir)\WixUtilExtension.dll</HintPath>
<Name>WixUtilExtension</Name>
</WixExtension>
<WixExtension Include="WixUIExtension">
<HintPath>$(WixExtDir)\WixUIExtension.dll</HintPath>
<Name>WixUIExtension</Name>
</WixExtension>
<WixExtension Include="WixNetFxExtension">
<HintPath>$(WixExtDir)\WixNetFxExtension.dll</HintPath>
<Name>WixNetFxExtension</Name>
</WixExtension>
</ItemGroup>
<Import Project="$(WixTargetsPath)" Condition=" '$(WixTargetsPath)' != '' " />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets" Condition=" '$(WixTargetsPath)' == '' AND Exists('$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets') " />
<Target Name="EnsureWixToolsetInstalled" Condition=" '$(WixTargetsImported)' != 'true' ">
<Error Text="The WiX Toolset v3.11 (or newer) build tools must be installed to build this project. To download the WiX Toolset, see http://wixtoolset.org/releases/" />
</Target>
<Target Name="SignAppx">
<Exec Command="&quot;$(WixToolPath)\x86\signtool.exe&quot; sign /fd SHA256 /a /f &quot;E:\Tools\c-entron code signing.pfx&quot; /tr http://timestamp.digicert.com /p SignMe123! &quot;@(SignAppx)&quot;" />
</Target>
<PropertyGroup>
<PostBuildEvent />
</PropertyGroup>
<!--
To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Wix.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
@@ -0,0 +1 @@
11.1.2211