How to inject additional installer into the AutoCAD OEM 2023 installer

Bruno,
Try this:
<InstallFile type=“EXE” contents=“File” installParams=“/install”
Instead of this:
<InstallFile type=“EXE” contents=“Folder” installParams=“/install”

I am pretty sure that you need it to be contents=“File” not contents=“Folder”

Shawn Golden
Microvellum

Thanks shwan,

I tried all type of configuration that I know.
I tried to do from the beginning and now the installation is gone.
But, when it starts to install autocad, it give me a Error 15.
Now I’m looking for how can I solve also this error.

do you have some idea?

Best Regards,
Bruno

P.S.: the log error give me this

[error] Unexpected JavaScript error in file: file:///C:/Temp/IdmCadFull2023/ODIS/Setup/ui/resources/app.asar/ui/dist/bundle.js,

But the oem wizard didn’t have this folder :thinking:

Bruno,

I overread the contents attribute when first reviewing your sample xml file. Shawn is right.

When you have an exe file, the contents should be

<InstallFile type="EXE" contents="File" installParams="/install" file="3rdParty/AuSt/some.exe" />

When you integrate a msi file, the contents should be

<InstallFile type="MSI" contents="Folder" file="3rdParty/AuSt/some.msi" />

You could also remove the PLC, Release and Typ nodes from the Identity node in your package xml. Maybe the ODIS gets confused with this. We do not use this nodes, and we have had zero problems since setting this up.

For completeness, here the configuration for EXE and MSI:

    <Configuration>
        <InstallFile type="EXE" contents="File" installParams="/install" file="3rdParty/AuSt/some.exe" />
        <Attributes diskCost="500000" ignoreFailure="true" permanent="true"/>
        <Platforms>
            <Platform name="Windows" architecture="x64" minVersion="8.1"/>
        </Platforms>
        <Languages languageNeutral="true"/>
        <LogFilePath>%temp%/AuStUninstaller.log</LogFilePath>
    </Configuration>
    <Configuration>
        <InstallFile type="MSI" contents="Folder" file="3rdParty/AuSt/some.msi" />
       <AdditionalPackageInfo identifier="{37345DC6-EA84-4B22-A2BC-11F30C15689C}" upgrade="{9DB484EA-5D61-4180-BF30-C2D3B2F4A7BE}" version="2.3.32" />
        <Attributes diskCost="75000000" ignoreFailure="true" permanent="true"/>
        <Platforms>
            <Platform name="Windows" architecture="x64" minVersion="8.1"/>
        </Platforms>
        <Languages languageNeutral="true"/>
        <LogFilePath>%temp%/CodeMeterRuntime64.log"</LogFilePath>
    </Configuration>

Hope this helps,
-Jens

Bruno,
Does removing your application from the dependencies in your pkg.test23.xml result in a good install with just plain OEM? You could also just swap it out with the original. It may be worth trying, if you haven’t already, just to confirm where its failing.

Hi Shawn,

I tested the approach with the following parameters in the EXE xml file -

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Package version="1.0" xsi:schemaLocation=https://emsfs.autodesk.com/schema/manifest/1/0 https://emsfs.autodesk.com/schema/manifest/1/0/manifest.xsd xmlns=https://emsfs.autodesk.com/schema/manifest/1/0 xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance>
    <Identity>
        <Publisher thirdParty="true">Datamine</Publisher>
        <DisplayName>Datamine License Manager</DisplayName>
        <BuildNumber>5.8.2.0</BuildNumber>
		<UPI2>{7C714B04-7A6B-49F5-B5B5-273437D8485D}</UPI2>
        <UpgradeCode>{97A6ED05-9AF1-40B1-96C4-A98119AC84D1}</UpgradeCode>
        <ConstantId>{9132C239-B128-4555-8411-FD9B37039332}</ConstantId>
    </Identity>
    <Configuration>
        <InstallFile type="EXE" contents="File" installParams="/install" file="3rdParty/Amine/Datamine License Services 5.8.2.0 EN.exe">
                </InstallFile>
        <Attributes diskCost="200000000" ignoreFailure="true" permanent="true"/>
        <Platforms>
            <Platform name="Windows" architecture="x64" minVersion="8.1"/>
        </Platforms>
        <Languages languageNeutral="true"/>
        <LogFilePath>%temp%/DatamineLicenseManager.log</LogFilePath>
    </Configuration>
</Package>

However, the following error was found in the ODIS file -

e[1;31mERROR: C:\MyProject\Amine_OEM\Install 2023\3rdParty\Amine\pkg.DatemineLisencing.xml:3:43 attribute value expectede[0m

Do you have any idea why this happens and what attribute could it be missing?

Regards,
Weiyang

Weiyang,
That is typically because it cannot read the schema attribute value somewhere in your XML.
Just taking a quick look it seems that the schemaLocation is missing " for the https://.
So line 2 should look like this:

Instead of:

I would start with that change first and see if it can read past that first.

Shawn Golden
Microvellum

Hi jens and shawn,
I fixed my problem.
The error was that I didn’t create a signature for an additional exe.

I read on oem help that signature was necessary only for product oem and not for additional exe.
Instead, I tryed adding a signature on my exe and it was gone.

Thanks everyone for your help.
Best Regards

Bruno

2 Likes

Shawn,

It looks like this is exactly why it failed.

Much appreciated!
Weiyang

2 Likes

That is a great catch!
Thanks for posting back your solution to it.
Shawn Golden
Microvellum

1 Like

Weiyang,
加油!
Glad you got it.
Shawn Golden
Microvellum

2 Likes

Thank you for all of these informations, I need just a few more steps to complete my deployment:
I injected my installer in the AOEM installation in the way you explained in the previous posts, this installer does a few things, like copying files and not so much more; what I need to do is to clean these files after an uninstall. The normal uninstall delete all “known” files of the OEM, but obviously not the ones generated by my installer so I’m asking how can I launch something (maybe I can create an executable that clean my custom files) in the standard uninstall process.

Moreover, if I try to reinstall (after an uninstall) the same installation , the entire process works fine, but my additional install is not run at all (if I double click on my custom exe, the one that had to be launched, my custom files are added as usual), the only way to make it run automatically by the OEM install, is to change the UPI2 guid of my custom process, so I suppose that this “exclusion” it’s due to something internal of the main install process.

Thank you for any idea about this…

Andrea

Andrea,
Were you able to take care of this? You could create a cleanup utility but another way to accomplish it would be to create a VBScript for the MSI and insert a custom action into the MSI to remove files and folders during uninstallation. For this you would have to modify the stock MSI once it is built.
Shawn Golden
Microvellum

1 Like

Thank you Shawn,
it seems a bit complex but I will try to do some experiment in this way.

Thank you for your answer
Andrea