Giter VIP home page Giter VIP logo

Comments (5)

oleg-shilo avatar oleg-shilo commented on July 24, 2024

In few cases Windows Installer process remain active.

What are you referring to by "Windows Installer process"? It cannot be MSI as it is not a process but a database file, which is hosted by msiexec.exe process. If it is indeed msiexec.exe then it has nothing to do with the project building process as VS project builds msi but never launches it.

I have to assume that you are talking about the the executable that is created when VS project is built.

This executable is built from C# file (e.g. program.cs) that is what I call "build script". This exe if executed invokes the WiX tools in order to produce MSI. At the end of the build the executable is launched either via *.targets or build event. And if this executable is hanging in the memory then there will be something either in this executable itself or in the way it invokes WiX tools.

It is relatively easy to debug this executable - it's just a .NET application. Just kill the currently running/hanging instance of that executable, place your breakpoints and press F5 in Visual Studio. This will show you what is preventing the executable from exiting.

from wixsharp.

manytwo avatar manytwo commented on July 24, 2024

No no I m talking about msiexec.exe (called Windows Installer in task manager), this is why I m surprised.
Please can you try the few step I described? I m curious to see if you can reproduce this.
And It also happend when running the msi file.

from wixsharp.

oleg-shilo avatar oleg-shilo commented on July 24, 2024

OK. I see. Indeed during the msi build two instances of msiexec.exe are launched. One quickly disappears and another one stays. Though you normally cannot kill that instance ('access denied') and for a good reason - it is a Windows service msiserver and it supposed to be running until it decides to terminate itself (e.g. on idle).

In my experiment this behavior did not prevent me from starting the installation. And I have to say that I see no reason for you to be concerned about it. In fact your original report did not described any actual problem or anomaly.

BTW Wix# never executes msiexec.exe. I am guessing WiX tools invoke the service indirectly. At least if I split building process into two phases "generating build.cmd with Wix#" and "running WiX compilers with build.cmd" it is the second phase that launches msiexec.exe.

from wixsharp.

manytwo avatar manytwo commented on July 24, 2024

Ok thanks for your explication. It was just a question about a "strange" behavior, because MSI can modify many things on the system, I can't just see an msiexec process always running without ask what is the cause. It is not installing something because it don't lock the msi engine, so there is no real problem, but I m still curious to understand what this process is always running after install, and after a build!

First I was thinking on something not released like error popup in hidden process (I have seen it on another installer engine, but it locked the msi session and no other installation can be launched).
I was also thinking about msi server waiting for reboot to commit last changes, but why at build time?

I close the issue/question as it is not a wix sharp concern, it happend also with pure wix without anything of wixsharp runtime. But if somebody have some information... Please leave it here :)

from wixsharp.

oleg-shilo avatar oleg-shilo commented on July 24, 2024

I can only add that it's not so uncommon for tools to to stay active after the job is done. For example VBCSCompiler.exe (interface to Roslyn compiling services) stays a couple of minutes active after C# compilation is complete. This way MS ensures that consecutive compilations are done as quick as possible. Loading/initializing Roslyn services is extremely expensive and without such a "process caching" it would introduce an enormous overhead for every compilation.

So may be msiexec is trying the same trick....

from wixsharp.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.