views:

389

answers:

6

I'm working on a setup which wants to include the Microsoft.Web.Services3 (WSE 3.0) DLL. However, I typically do not like including Microsoft DLL's in our installs except by way of Microsoft's redistributables. There is both a developer and a redist install package available from Microsoft.

So, as a best practice, should I include the single DLL in my install or refer them to one of the WSE 3.0 installs (assuming they do not already have it installed)?

A: 

If you don't include it you should at the very least link to it directly on your site or have your installer open the web browser to it (or even download it automatically). Or better yet, include the redistributable in your software package.

However, if the DLL is not very large and you suspect that few users will have it, in the interest of a better user I would prepackage it in the default installer. However, you can always have an installer that does not include it for those who want a smaller installer... a great deal of other vendors do this all the time.

Adam Haile
+2  A: 

Check in the installer if WSE 3.0 is installed and if it isn't alert the person and cancel the install, if it is continue normally. I wouldn't include the DLL in your setup package, because it could get out dated pretty fast, and I don't know if the EULA will allow it.

Nick Berardi
+2  A: 

I believe the MS EULA prevents you from redistributing MS code, unless its in a redistributable package.

A proper redistributable should handle any other prerequisites, so its probably the better choice anyways.

Eric Haskins
+5  A: 

Usually, redistributing any of Microsoft DLLs outside of the redistributable package is forbidden by their EULA, so you might first want to check the appropriate EULA for that DLL.

Generally, I would prefer the redist package since that makes sure that it's correctly "registered" into the system, i.e. if you install a newer version of the redist it gets updated (like DirectX) or not overwritten if it's an older version (also like DirectX).

Michael Stum
A: 

I have to confess that (especially for that particular DLL) I always include it in my setups - but then I am working in an enterprise environment, and not releasing in public.

samjudson
A: 

Thanks for the suggestions/comments! After wrestling with windows installer setup I figured out the best way to include the WSE30 redist and pop up a dialog if it is not installed.

I'm aware of it not being best practice (and against Microsoft's EULA as mentioned) to simply include the DLL, which is why I thought it strange that it was trying to include the WSE DLL outside of the redist, especially when the redist is registered with the installer (it shows up as a pre-req under properties).

Thanks again.

scottmarlowe

related questions