Build, publish and update your AutoCAD OEM application with fully automated BuildTool (while saving a lot of time doing so) [Part 2]

Check out Part1 first!

Please see

Part 1
first if you have not done so already!

#5 A quick run through of a typical build process

The full build for all components takes about 12 hours to complete. In the following example we run through a typical build for the AutoCAD OEM 2023 based application called AutoSTAGE 2023.

For brevity and clarity, we publish here only an excerpt of all processes to give you an overview.

When starting the build, there is done some preliminary work where the file system is set up, the custom commands are extracted from the code for later use, and other preparatory work is happening to ready the codebase and associated files for the build.

20220617_15-03-30-850	-------------------------------------------------------------------
20220617_15-03-30-850	-------------------------------------------------------------------
20220617_15-03-30-850	-------------------------------------------------------------------
20220617_15-03-30-850	
20220617_15-03-30-850	BUILD is running... PLEASE WAIT!
20220617_15-03-30-850	
20220617_15-03-30-850	-------------------------------------------------------------------
20220617_15-03-30-850	-------------------------------------------------------------------
20220617_15-03-30-850	-------------------------------------------------------------------
20220617_15-03-30-850	
20220617_15-03-30-850	Delete Temp Build Directory...
20220617_15-03-30-960	Delete Temp Build Directory...DONE!
20220617_15-03-30-960	
20220617_15-03-30-960	Add Temp Build Directory...
20220617_15-03-30-960	Add Temp Build Directory...DONE!
20220617_15-03-30-960	
20220617_15-03-31-366	Set Build Number to -> 2.3.28.1
20220617_15-03-31-366	
20220617_15-03-32-241	Extract Commands from Code...
20220617_15-03-32-413	Extract Commands from Code...DONE!
20220617_15-03-32-554	
20220617_15-03-32-554	Edit files -> UpdateXml...
20220617_15-03-32-554	Edit files -> UpdateXml...DONE!
20220617_15-03-32-554	
20220617_15-03-32-554	Edit files -> SetSfxInstallerText...
20220617_15-03-32-694	Edit files -> SetSfxInstallerText...DONE!
20220617_15-03-36-554	
20220617_15-03-36-569	Run Batch _CopyArxDbgToRelease_fromSDK.bat...
20220617_15-03-36-647	Run Batch _CopyArxDbgToRelease_fromSDK.bat...DONE!
20220617_15-03-36-647	
20220617_15-03-36-647	Run Batch _CopyLibxlToRelease.bat...
20220617_15-03-36-991	Run Batch _CopyLibxlToRelease.bat...DONE!
20220617_15-03-36-991	
20220617_15-03-36-991	Run Batch _CopyMigraDocToRelease.bat...
20220617_15-03-37-663	Run Batch _CopyMigraDocToRelease.bat...DONE!

Then the build of the codebase is started.
First, icon resource dll’s get build:

20220617_15-03-40-100	-------------------------------------------------------------------
20220617_15-03-40-100	BUILD RELEASE started...
20220617_15-03-40-100	-------------------------------------------------------------------
20220617_15-03-40-100	
20220617_15-03-40-100	Run Batch SetBuildFolder.bat... Param -> RELEASE   
20220617_15-03-40-132	Run Batch SetBuildFolder.bat... Param -> RELEASE   DONE!
20220617_15-03-40-272	          -------------------------------------------------------------------
20220617_15-03-40-272	          BUILD RELEASE Icon ACAD2023_OEM started...
20220617_15-03-40-272	          -------------------------------------------------------------------
20220617_15-03-40-272	          
20220617_15-03-40-272	          Building RELEASE AuStIcon ACAD2023_OEM x64 ...
20220617_15-03-41-757	                              FOUND -> D:\REL\RELEASE\ACAD2023_OEM\AuStIcon.dll
20220617_15-03-41-757	          Building RELEASE AuStIcon ACAD2023_OEM x64 ...DONE!
20220617_15-03-51-883	          
20220617_15-03-51-883	          -------------------------------------------------------------------
20220617_15-03-51-883	          BUILD RELEASE Icon ACAD2023_OEM ended -> Counted(13) ...DONE!
20220617_15-03-51-883	          -------------------------------------------------------------------

Then the build of the object enablers commences:

20220617_15-03-51-883	          -------------------------------------------------------------------
20220617_15-03-51-883	          BUILD RELEASE Object ACAD2023_OEM started...
20220617_15-03-51-883	          -------------------------------------------------------------------
20220617_15-03-51-883	          
20220617_15-03-51-883	          Building RELEASE AuSt10Object ACAD2023_OEM x64 ...
20220617_15-04-08-025	                              FOUND -> D:\REL\RELEASE\ACAD2023_OEM\AuSt10Object.dbx
20220617_15-04-08-025	                              FOUND -> D:\REL\RELEASE\ACAD2023_OEM\AuSt10ComArx23OEM.arx
20220617_15-04-08-025	                              FOUND -> D:\REL\RELEASE\ACAD2023_OEM\AuSt10Wrapper.dll
20220617_15-04-08-025	          Building RELEASE AuSt10Object ACAD2023_OEM x64 ...DONE!
20220617_15-05-36-957	          
20220617_15-05-36-957	          -------------------------------------------------------------------
20220617_15-05-36-957	          BUILD RELEASE Object ACAD2023_OEM ended -> Counted(39) ...DONE!
20220617_15-05-36-957	          -------------------------------------------------------------------

Followed by some core and interface arx files, as well as managed dotnet dll’s and additional exe files.

20220617_15-05-36-957	          -------------------------------------------------------------------
20220617_15-05-36-957	          BUILD RELEASE Core ACAD2023_OEM started...
20220617_15-05-36-957	          -------------------------------------------------------------------
20220617_15-05-36-973	          
20220617_15-05-36-973	          Building RELEASE AuStCore ACAD2023_OEM x64 ...
20220617_15-06-21-337	                              FOUND -> D:\REL\RELEASE\ACAD2023_OEM\AuStCore.arx
20220617_15-06-21-337	          Building RELEASE AuStCore ACAD2023_OEM x64 ...DONE!          
20220617_15-06-35-894	          
20220617_15-06-35-894	          -------------------------------------------------------------------
20220617_15-06-35-894	          BUILD RELEASE Core ACAD2023_OEM ended -> Counted(43) ...DONE!
20220617_15-06-35-894	          -------------------------------------------------------------------
20220617_15-06-35-894	                   
20220617_15-06-35-894	          -------------------------------------------------------------------
20220617_15-06-35-894	          BUILD RELEASE Interface ACAD2023_OEM started...
20220617_15-06-35-910	          -------------------------------------------------------------------         
20220617_15-06-35-910	          
20220617_15-06-35-910	          Building RELEASE AuSt10 ACAD2023_OEM x64 ...
20220617_15-07-10-151	                              FOUND -> D:\REL\RELEASE\ACAD2023_OEM\AuSt10.arx
20220617_15-07-10-151	          Building RELEASE AuSt10 ACAD2023_OEM x64 ...DONE!
20220617_15-07-10-151	          
20220617_15-08-33-019	          -------------------------------------------------------------------
20220617_15-08-33-019	          BUILD RELEASE Interface ACAD2023_OEM ended -> Counted(52) ...DONE!
20220617_15-08-33-019	          -------------------------------------------------------------------
20220617_15-08-33-019	          
20220617_15-08-33-019	          
20220617_15-08-33-019	          -------------------------------------------------------------------
20220617_15-08-33-019	          BUILD RELEASE Mgd ACAD2023_OEM started...
20220617_15-08-33-019	          -------------------------------------------------------------------
20220617_15-08-42-456	          
20220617_15-08-42-456	          Building RELEASE AuSt10Mgd ACAD2023_OEM x64 ...
20220617_15-08-43-347	                              FOUND -> D:\Rel\RELEASE\ACAD2023_OEM\AuSt10Mgd.dll
20220617_15-08-43-347	          Building RELEASE AuSt10Mgd ACAD2023_OEM x64 ...DONE!
20220617_15-08-43-347	          
20220617_15-08-51-581	          -------------------------------------------------------------------
20220617_15-08-51-581	          BUILD RELEASE Mgd ACAD2023_OEM ended -> Counted(66) ...DONE!
20220617_15-08-51-581	          -------------------------------------------------------------------
20220617_15-08-51-581	          
20220617_15-08-51-581	          -------------------------------------------------------------------
20220617_15-08-51-581	          BUILD RELEASE Exe Release started...
20220617_15-08-51-581	          -------------------------------------------------------------------
20220617_15-08-53-831	          
20220617_15-08-53-831	          Building RELEASE AuStComRegisterExe Release x64 ...
20220617_15-08-54-628	                              FOUND -> D:\REL\RELEASE\_APP\AuStComRegister.exe
20220617_15-08-54-628	          Building RELEASE AuStComRegisterExe Release x64 ...DONE!
20220617_15-08-54-628	          
20220617_15-08-59-340	          -------------------------------------------------------------------
20220617_15-08-59-340	          BUILD RELEASE Exe Release ended -> Counted(75) ...DONE!
20220617_15-08-59-340	          -------------------------------------------------------------------

When all is built well and done, the release folder is copied to a secondary folder and check for plausibility:

20220617_15-08-59-340	
20220617_15-08-59-340	Run Batch Copy_Release.bat... Param -> ACAD2023_OEM XRELEASE   
20220617_15-09-00-736	Run Batch Copy_Release.bat... Param -> ACAD2023_OEM XRELEASE   DONE!
20220617_15-09-00-749	
20220617_15-09-00-749	Check Build with Param -> RELEASE ACAD2023_OEM...
20220617_15-09-02-786	     SUCCESS -> Build and CheckBuild MATCHES! (113)(113) for D:\REL\XRELEASE\ACAD2023_OEM
20220617_15-09-02-786	Check Build with Param -> RELEASE ACAD2023_OEM...DONE!
20220617_15-09-02-790	
20220617_15-09-02-790	-------------------------------------------------------------------
20220617_15-09-02-792	BUILD RELEASE ended...
20220617_15-09-02-793	-------------------------------------------------------------------

The secondary folder is necessary because we build a release version as well as a separate trial and educational version, which are slightly different codebases.

AutoSTAGE 2023 needs to have an extra runtime environment installed, which sets up the system for the real installation of the main application. The runtime is created after the AutoCAD OEM Make Wizard has run through. But before, we need to harvest and edit some files that are consumed by the runtime installer:

20220617_15-09-02-794	-------------------------------------------------------------------
20220617_15-09-02-794	Create Runtime started...
20220617_15-09-02-795	-------------------------------------------------------------------
20220617_15-09-02-795	
20220617_15-09-02-795	          -------------------------------------------------------------------
20220617_15-09-02-795	          
20220617_15-09-02-795	          Run Batch AuStRtHarvest.bat... Param -> D-REL-RELEASE-_APPDATA APPDATA   
20220617_15-09-02-939	          Run Batch AuStRtHarvest.bat... Param -> D-REL-RELEASE-_APPDATA APPDATA   DONE!
20220617_15-09-02-939	          
20220617_15-09-02-941	          Run Batch AuStRtHarvest.bat... Param -> D-BLK-AuStTemplate AUSTTEMPLATE   
20220617_15-09-03-081	          Run Batch AuStRtHarvest.bat... Param -> D-BLK-AuStTemplate AUSTTEMPLATE   DONE!
20220617_15-09-03-082	          
20220617_15-09-03-084	          Run Batch AuStRtHarvest.bat... Param -> D-BLK-AuStUser AUSTUSER   
20220617_15-09-03-214	          Run Batch AuStRtHarvest.bat... Param -> D-BLK-AuStUser AUSTUSER   DONE!
20220617_15-09-03-354	          
20220617_15-09-03-355	          -------------------------------------------------------------------
20220617_15-09-03-357	          
20220617_15-09-03-357	          -------------------------------------------------------------------
20220617_15-09-03-357	          
20220617_15-09-03-358	          (1) D:\DEV\\AuSt_RuntimeInstaller\AuStHarvest_APPDATA.wxs -> READ *OK*!
20220617_15-09-03-359	          (1) D:\DEV\\AuSt_RuntimeInstaller\AuStHarvest_APPDATA.wxs -> WRITE *OK*!
20220617_15-09-03-359	          
20220617_15-09-03-359	          (1) D:\DEV\AuSt_RuntimeInstaller\AuStHarvest_AUSTTEMPLATE.wxs -> READ *OK*!
20220617_15-09-03-360	          (1) D:\DEV\AuSt_RuntimeInstaller\AuStHarvest_AUSTTEMPLATE.wxs -> WRITE *OK*!
20220617_15-09-03-360	          
20220617_15-09-03-360	          (1) D:\DEV\AuSt_RuntimeInstaller\AuStHarvest_AUSTUSER.wxs -> READ *OK*!
20220617_15-09-03-360	          (1) D:\DEV\AuSt_RuntimeInstaller\\AuStHarvest_AUSTUSER.wxs -> WRITE *OK*!
20220617_15-09-03-362	          
20220617_15-09-03-362	          -------------------------------------------------------------------
20220617_15-09-03-362	
20220617_15-09-03-362	-------------------------------------------------------------------
20220617_15-09-03-363	Create Runtime ended...
20220617_15-09-03-363	-------------------------------------------------------------------

Now the AutoCAD OEM Make Wizard can run its magic:

20220617_15-09-03-379	-------------------------------------------------------------------
20220617_15-09-03-380	BUILD OEM WIZARD started...
20220617_15-09-03-380	-------------------------------------------------------------------
20220617_15-09-03-380	
20220617_15-09-03-381	          -------------------------------------------------------------------
20220617_15-09-05-638	          
20220617_15-09-05-638	          Edit ACAD2023OEM AuSt OEM Make Wizard xml file...
20220617_15-09-06-657	          Edit ACAD2023OEM AuSt OEM Make Wizard xml file...DONE!
20220617_15-09-06-658	          
20220617_15-09-06-658	          BUILD ACAD2023OEM AuSt...
20220617_15-09-06-658	          
20220617_15-09-06-658	          Run Batch Build_Oem.bat... Param -> ACAD2023OEM AuSt 06<serial>17   
20220617_15-09-30-450	          Run Batch Build_Oem.bat... Param -> ACAD2023OEM AuSt 06<serial>17    DONE!
20220617_15-09-30-450	          
20220617_15-09-30-450	          BUILD ACAD2023OEM AuSt...DONE!
20220617_15-09-40-580	          
20220617_15-09-40-595	          -------------------------------------------------------------------

The OEM build is done, now the runtime can be created:

20220617_15-09-40-595	          -------------------------------------------------------------------
20220617_15-09-40-595	          
20220617_15-09-40-595	          Run Batch AuStRuntimeInstaller.bat... Param -> AUST2023   
20220617_15-10-06-969	          Run Batch AuStRuntimeInstaller.bat... Param -> AUST2023   DONE!
20220617_15-10-06-977	          
20220617_15-10-06-977	          -------------------------------------------------------------------

When the runtime is done, the AutoCAD OEM Installer Wizard is called to create the installer:

20220617_15-10-06-979	          -------------------------------------------------------------------
20220617_15-10-10-992	          
20220617_15-10-10-992	          Deployment Path deleted --> D:\DEPLOY\getAuSt2023\AutoSTAGE_2023__Installer_2.3.28\
20220617_15-10-10-992	          
20220617_15-10-10-992	          Edit ACAD2023OEM AuSt OEM Installer Wizard xml file...
20220617_15-10-12-014	          Edit ACAD2023OEM AuSt OEM Installer Wizard xml file...DONE!
20220617_15-10-12-014	          
20220617_15-10-12-014	          BUILD ACAD2023OEM AuSt OEM INSTALLER WIZARD started...
20220617_15-10-12-014	          
20220617_15-10-12-014	          Run Batch Build_OemInstaller.bat... Param -> ACAD2023OEM AuSt D-DEPLOY-getAuSt2023-AutoSTAGE_2023__Installer_2.3.28-   
20220617_15-10-40-406	          Run Batch Build_OemInstaller.bat... Param -> ACAD2023OEM AuSt D-DEPLOY-getAuSt2023-AutoSTAGE_2023__Installer_2.3.28-   DONE!
20220617_15-10-40-406	          
20220617_15-10-40-422	          BUILD ACAD2023OEM AuSt OEM INSTALLER WIZARD started...DONE!

Changing the OEM installer msi file and adding some registry, application and dependency data needed for installation:

20220617_15-10-50-426	          Edit files -> OemMsi...
20220617_15-10-50-426	          
20220617_15-10-50-426	          D:\DEPLOY\getAuSt2023\AutoSTAGE_2023__Installer_2.3.28\x64\AuSt\AuSt.msi -> READ *OK*!
20220617_15-10-55-544	          D:\DEPLOY\getAuSt2023\AutoSTAGE_2023__Installer_2.3.28\x64\AuSt\AuSt.msi -> EDIT *OK*!
20220617_15-10-55-544	          
20220617_15-10-55-544	          Edit files -> OemMsi...DONE!
20220617_15-10-55-560	          
20220617_15-10-55-560	          Edit files -> OemRegistry...
20220617_15-10-55-560	          
20220617_15-10-55-560	          D:\DEPLOY\getAuSt2023\AutoSTAGE_2023__Installer_2.3.28\registry.txt -> READ *OK*!
20220617_15-10-55-566	          D:\DEPLOY\getAuSt2023\AutoSTAGE_2023__Installer_2.3.28\registry.txt -> EDIT *OK*!
20220617_15-10-55-566	          
20220617_15-10-55-582	          Edit files -> OemRegistry...DONE!
20220617_15-10-55-582	          
20220617_15-10-55-582	          Edit files -> OemSetupXml...
20220617_15-10-55-582	          
20220617_15-10-55-582	          D:\DEPLOY\getAuSt2023\AutoSTAGE_2023__Installer_2.3.28\setup.xml -> READ *OK*!
20220617_15-10-55-582	          D:\DEPLOY\getAuSt2023\AutoSTAGE_2023__Installer_2.3.28\setup.xml -> EDIT *OK*!
20220617_15-10-55-582	          
20220617_15-10-55-582	          Edit files -> OemSetupXml...DONE!
20220617_15-10-55-582	          
20220617_15-10-56-147	          AuStPreviewLib.exe copied...
20220617_15-10-56-664	          
20220617_15-10-56-664	          AuStUninstaller.exe copied...
20220617_15-10-57-189	          
20220617_15-10-57-189	          AutoSTAGE Runtime copied...
20220617_15-10-57-723	          
20220617_15-10-57-723	          CodeMeter Runtime copied...
20220617_15-10-57-723	          
20220617_15-10-57-723	          Edit files -> OemEditDependencyPackageXml...
20220617_15-10-57-723	          
20220617_15-10-57-723	          D:\DEV\DependencyPackageXml\pkg.AuStPreviewLibExe.xml -> READ *OK*!
20220617_15-10-57-738	          D:\DEV\DependencyPackageXml\pkg.AuStPreviewLibExe.xml -> WRITE *OK*!
20220617_15-10-57-738	          
20220617_15-10-57-738	          Edit files -> OemEditDependencyPackageXml...DONE!
20220617_15-10-57-738	          
20220617_15-10-57-738	          Edit files -> OemEditDependencyPackageXml...
20220617_15-10-57-738	          
20220617_15-10-57-738	          D:\DEV\\DependencyPackageXml\pkg.AuStUninstallerExe.xml -> READ *OK*!
20220617_15-10-57-738	          D:\DEV\\DependencyPackageXml\pkg.AuStUninstallerExe.xml -> WRITE *OK*!
20220617_15-10-57-738	          
20220617_15-10-57-738	          Edit files -> OemEditDependencyPackageXml...DONE!          
20220617_15-10-57-738	          
20220617_15-10-57-738	          Edit files -> OemEditDependencyPackageXml...
20220617_15-10-57-738	          
20220617_15-10-57-738	          D:\DEV\\DependencyPackageXml\pkg.AuStRuntimeMsi.xml -> READ *OK*!
20220617_15-10-57-738	          D:\DEV\\DependencyPackageXml\pkg.AuStRuntimeMsi.xml -> WRITE *OK*!
20220617_15-10-57-738	          
20220617_15-10-57-738	          Edit files -> OemEditDependencyPackageXml...DONE!
20220617_15-10-57-738	          
20220617_15-10-57-738	          Edit files -> OemEditDependencyPackageXml...
20220617_15-10-57-738	          
20220617_15-10-57-738	          D:\DEV\\DependencyPackageXml\pkg.CodeMeterRuntimeMsi.xml -> READ *OK*!
20220617_15-10-57-738	          D:\DEV\\DependencyPackageXml\pkg.CodeMeterRuntimeMsi.xml -> WRITE *OK*!
20220617_15-10-57-738	          
20220617_15-10-57-738	          Edit files -> OemEditDependencyPackageXml...DONE!
20220617_15-10-57-754	          
20220617_15-10-57-754	          Edit files -> OemEditProductPackageXml...
20220617_15-10-57-754	          
20220617_15-10-57-754	          D:\DEPLOY\getAuSt2023\AutoSTAGE_2023__Installer_2.3.28\x64\AuSt\pkg.aust.xml -> READ *OK*!
20220617_15-10-57-754	          D:\DEPLOY\getAuSt2023\AutoSTAGE_2023__Installer_2.3.28\x64\AuSt\pkg.aust.xml -> WRITE *OK*!
20220617_15-10-57-754	          
20220617_15-10-57-754	          Edit files -> OemEditProductPackageXml...DONE!

Now the installer is done and good, we pack this into a self-extracting archive, one with regular user interface and one with silent mode for quiet installation:

20220617_15-10-57-754	          -------------------------------------------------------------------
20220617_15-10-57-754	          
20220617_15-10-57-754	          BUILD ACAD2023OEM AuSt OEM SFX INSTALLER started...
20220617_15-10-57-754	              Compile to -> D:\DEPLOY\_getAuSt2023\AutoSTAGE_2023__Installer.exe
20220617_15-14-31-285	          BUILD ACAD2023OEM AuSt OEM SFX INSTALLER started...DONE!
20220617_15-14-31-285	          
20220617_15-14-31-285	          
20220617_15-14-31-285	          BUILD ACAD2023OEM AuSt OEM SFX INSTALLER started...
20220617_15-14-31-285	              Compile to -> D:\DEPLOY\_getAuSt2023\AutoSTAGE_2023__Installer_SILENT.exe
20220617_15-16-46-587	          BUILD ACAD2023OEM AuSt OEM SFX INSTALLER started...DONE!
20220617_15-16-46-587	          
20220617_15-16-47-590	          -------------------------------------------------------------------

We generate update installer if the application has already installed on a user client machine. The update installer is, compared to the regular full installer, very lightweight and therefore easy to deploy. The update installer will be bundled with another needed component for installation.

20220617_15-16-47-590	          -------------------------------------------------------------------
20220617_15-16-47-590	          
20220617_15-16-47-590	          Run Batch AuStAppInstaller___OemUpdate.bat... Param -> AUST2023_UPDATE getAuSt2023   
20220617_15-17-21-799	          Run Batch AuStAppInstaller___OemUpdate.bat... Param -> AUST2023_UPDATE getAuSt2023   DONE!
20220617_15-17-21-799	          
20220617_15-17-21-799	          
20220617_15-17-21-799	          Run Batch BundleApp.bat... Param -> AUST2023_UPDATE ACAD2023OEM AutoSTAGE_2023__Update_Bundle   
20220617_15-17-29-611	          Run Batch BundleApp.bat... Param -> AUST2023_UPDATE ACAD2023OEM AutoSTAGE_2023__Update_Bundle   DONE!
20220617_15-17-29-611	          
20220617_15-17-29-619	          -------------------------------------------------------------------

Finally, the AutoSTAGE EasyInstall.exe is build, which is a mechanism for the detection of already installed applications on the user client machine and to download the needed software for installation from our web resources.

20220617_15-17-29-619	          -------------------------------------------------------------------
20220617_15-17-29-619	          
20220617_15-17-29-619	          BUILD ACAD2023OEM AuSt OEM EasyInstall started...
20220617_15-17-29-619	              Compile to -> D:\DEPLOY\_getAuSt2023\EasyInstall\AutoSTAGE_2023__EasyInstall.exe
20220617_15-17-33-128	          BUILD ACAD2023OEM AuSt OEM EasyInstall started...DONE!
20220617_15-17-33-128	          
20220617_15-17-33-128	          BUILD ACAD2023OEM AuSt OEM EasyInstall started...
20220617_15-17-33-143	              Compile to -> D:\DEPLOY\_getAuSt2023\EasyInstall\AutoSTAGE_2023__EasyInstall_SILENT.exe
20220617_15-17-36-640	          BUILD ACAD2023OEM AuSt OEM EasyInstall started...DONE!
20220617_15-17-36-640	          
20220617_15-17-36-640	          -------------------------------------------------------------------
20220617_15-17-36-640	
20220617_15-17-36-640	-------------------------------------------------------------------
20220617_15-17-36-640	BUILD OEM WIZARD ended...
20220617_15-17-36-640	-------------------------------------------------------------------
20220617_15-17-36-656	
20220617_15-17-36-656	-------------------------------------------------------------------
20220617_15-17-36-656	-------------------------------------------------------------------
20220617_15-17-36-656	-------------------------------------------------------------------
20220617_15-17-36-656	
20220617_15-17-36-656	BUILD is DONE!
20220617_15-17-36-656	
20220617_15-17-36-656	Elapsed Time --> 00:14:05.8067045
20220617_15-17-36-656	
20220617_15-17-36-656	-------------------------------------------------------------------
20220617_15-17-36-656	-------------------------------------------------------------------
20220617_15-17-36-656	-------------------------------------------------------------------

The result of the build: Two self-extracting installation files and a very small update executable. These are the files that will be deployed to the user.

#6 Logging

Logging of the build process is extremely important. With a comprehensive logging it is very easy to find the source of any build errors. For every step of the build process, a respective build log will be created, logging the functions and outputs.

There are two log folders:

  • The _BuildLog folder, where the logs of every BuildTool process step is saved

  • The _DetailLog folder, where the logging of the msbuild process is stored

If a build error occurs, the last created log can be consulted to query the source of the disturbance.

#7 Integration of new platform versions

When Autodesk releases a new AutoCAD and AutoCAD OEM Version, the Visual Studio solutions as well as the BuildTool need to be updated. This is in general a fairly straightforward matter and takes usually not more than two or three days until everything is up and running. If some refactoring of the BuildTool is needed, the preparation can take a little longer, as seen with the current AutoCAD OEM 2023, where the OEM installer uses a new installation mechanism. When everything is done and running, the build process is fixed in place and can be repeated indifferently and continuously.

#8 Could the BuildTool give aid to you in your build process?

As always: everything you do not have to do by hand or yourself is much preferable. Or: Automation is king. With the BuildTool, I have developed an automation and productivity tool which speeds up the development and deployment cycle enormously and frees the developer of a lot of annoying chores. And I have to say: I am rather proud of this, because the productivity gain I can realize with this is immense and invaluable. And without it, we would not be able to publish an application like AutoSTAGE with all the options and different flavours at all.

For quite a while now I have been thinking that there may be other developers out there, especially for AutoCAD, who may have the need for a BuildTool like this. There are considerations to extent and open the BuildTool and to offer this to other developers. As I see it, this cannot happen for free as free- or shareware. Over the years, there has been put too much development time and effort into developing this tool. Also, when targeting a general publication for other developers, there is still the need for some mayor refactoring to make it more flexible and open to alternate workflows. Also, some service and documentation from our side should be included, as well as frequent updates, for example when a new AutoCAD version comes along. So, it has to become a commercial product. But it should be very competitive when you work without a build tool more than a couple of hours a month on your build and deployment pipeline.

What do you say? Please let me know what you think and add your thoughts below. Thanks for reading this and your feedback! Looking forward to it.

#9 About the author

My name is Jens Mueller and I am the lead developer, chief designer, managing director and owner (all in one and chief entrepreneur) of the AutoSTAGE GmbH, based in Germany.

20 years ago, I aspired to become a lighting designer for concerts, shows and events. I did an internship at a lighting design company in Los Angeles, where I got hooked instantly on AutoCAD 2000. Soon, I was writing some small VBA scripts to automate more mundane drawing tasks doing lighting designs.

I realized that maybe others could need such productivity tools that I was developing, so in 2007 I released (beside my regular work) my first product called “AutoSTAGE for AutoCAD”: This was a plug-in for AutoCAD based on VBA with an extensive dwg symbol library, targeting all the people that work in the concert, event and showbusiness industry.

In 2012, I finally gave up on VBA (at last!) and my lighting design career for good and switch to the AutoCAD ObjectArx-API and developed a brand new and much better application with C++ and C#. Over time, along the way, the barebones start-up CAD shop became a real CAD company.

The new version was released at the end of 2014 and called AutoSTAGE App, also as a plug-in for AutoCAD. With this we (as a company) were also the first in the market to offer a standardized product to do structural analysis with drawing data.

A year later, we jumped onto the AutoCAD OEM bandwagon and released the first AutoCAD OEM application called AutoSTAGE 2016. Since then, we released every year a new AutoSTAGE standalone AutoCAD OEM based application for customers in Germany, Austria and Switzerland.

The AutoSTAGE application bundled together with the AutoCAD OEM platform resulted in a solid business right up until the corona pandemic hit home, concerts, shows and events being the first activities getting cancelled. Nevertheless, we now stand on the cusp of releasing AutoSTAGE with an English language version to “the world”.

After two decades, it turned out that I am a much better and prolific software engineer than lighting designer. This has been a wild ride: learning so much stuff and scaling so many walls, it has been actually very much fun and not boring at all!

So, I consider myself a (humble) expert on everything about developing and deploying applications for and with AutoCAD and AutoCAD OEM. Time permitted, I am looking always for new frontiers and learnings, but time is usually the scarcest resource.

3 Likes

Great post and tool to improve developers productivity. Thanks for taking the time to post this here.

1 Like