ATL COM .exe-Server produces ISEXP: warning -4354

Hello together,

with Visual Studio 2013 (Win7 Ultimate 64Bit) I have a solution with a setup project containing an ATL COM .exe server (32 bit) from that IS extracts COM information.

My ATL COM .exe server registers/unregisters perfectly fine when running with -RegServer/-UnregServer command and I have a Computer on which all builds fine - the COM server and the Setup.

Transfering the project to another machine (VS2013 Win8 32Bit, im using in a VMWare) when building the Setup the warning -4354 appears, but I don't know why. After that warning I noticed, that the COM registry entries are new on my system without running the setup or having the server registred on any other way. I tried several other machines, but always the warning -4354 appears. Only on the original machine mentioned above it builds fine.

I 'm able to reproduce the same behaviour (building the setup on the first machine but not on any other) with a simple solution containing jaust a wizard generated ATL COM server and a setup installing this server (attached to this post).
Does anyone knows help or support?

Does anyone knows how to analyze the error/warning in order to get to know what's going wrong?

Thank you in advance,

0 Kudos
2 Replies

Re: ATL COM .exe-Server produces ISEXP: warning -4354

Hi Frank,

Can you check if the Data Execution Prevention is turned on for all programs on the machines that gets the warning?
If it is, can you try changing the setting for Windows program and see if there is a difference?
0 Kudos

Re: ATL COM .exe-Server produces ISEXP: warning -4354

Yes, I've tried the several DEP options without success.

But I've finally found a way to get rid of this annoying warning. It seems there is generally a IS LE Installation problem.

What I've done:

- Installing Win7 on a virtual machine
- Installing VS2013 SP2
- installing IS LE

-> Compiling my solution with an ATL COM .exe-Server -> warning -4354, the setup is generated but does not work.

Now I made a solution from the very beginning with an ATL COM .dll-Server (!!)

- running VS2013 as admin
- Using the VS wizzards to generate an ATL COM .dll-Server with an ATL simple object class (using always the defaults).
- compile the server in release mode
- Using the IS LE Wizzard to generate an Setup with server as the only file to install. Set the "Extract COM Information" in the file properties of my .dll-Server
- compile the setup with success

- closing VS2013
- running again VS2013 as admin
- loading and compiling my solution including the Setup -> heureca, it works!!!

Since this procedure has worked on at least three different machines (one at my customer who became really angry) I guess IS LE developers should work again on their own setup ...

Perhaps a more specific message (with an hresult or registry entry not working, other than simply assuming the problems on the COM component to be registered) would help, to.

Hope, this helps other suffering programmers.

0 Kudos