views:

174

answers:

1

Hello,

Our c# project requires two things on the target computer to run. The first is .net 2 or higher, which is a fair requirement for the users. The second is the c++ Redistributable. We need this because we use skincrafter. This is slightly more rare to find on a target computer. At the moment we deploy using visual studio and this creates a setup.exe that makes sure that both .net and the c++ redistributable get put on the target machine.

Our problem comes when network admins want to distribute the program across their network. They only take the msi and not the setup.exe. This means that when a computer on the network tries to install the program and they don't have the c++ redistributable on their machine, the program doesn't work properly.

From what I've read, it seems the redistributable just puts some dlls on the computer. If so, surely I can just include those dlls in the msi and make sure they get put on the target machine. Or is it not so simple?

A: 

Yes, you can add the C++ redistributables in MSI. With the dlls in the MSI, you have the option of registering the dll in the target machine. So you can do that as well.

Kangkan
OK thank you. I think the dlls I need to include are gdiplus.dll, mfc90.dll, msvcr90.dll, Microsoft.VC90.MFC.manifest, Microsoft.VC90.CRT.manifest. Just need to find them now. You mentioned registering the dlls, should I be setting Register/System/SharedLegacyFile or permanent, or any combination of those? Does it matter that it's a pre-compiled dll that's calling the c++ dlls?
Septih
Set the appropriate value for Register. and Vital=true. This will cause the dlls to be registered on the target machine and in case of failure, the installation will roll back.
Kangkan

related questions