Redistribution of files in the “C:\Program Files\Microsoft\Exchange Server” folder and sub-folders is not advised/supported.  Yes, this does include the “C:\Program Files\Microsoft\Exchange Server\Public” folder also.  These files are installed when the Exchange 2007 (or later) tools are installed.  If you need these files with the minimal installation, then use the Exchange installer to install them – the box will need to be at least in an Exchange Admin role.  There is no installer/redistributable which can be included with an application install – you have to run the installer for Exchange.

 

Files in product folder are not to be redistributed unless there is documentations saying that they may be.  Please refer to the EULA (End User License Agreement) which accompanies the installer for Exchange and note the text on redistribution.  Many DLLs and other files are part of a system of interdependent files and registry entries; distribution of any set of files incorrectly may likely fail at some point unless those files were designed for such distribution.   

 

When developing using APIs which are tied to a product, it’s very important that the files of that product are not distributed unless you know that it’s safe and legal to do so –in many cases it’s not.  Including product DLLs (in this case Microsoft’s) or OS DLLs (i.e. from Windows) should always be avoided.  In some cases severe (unrecoverable/data damaging) problems can occur from including such components with an application install. 

 

Here are some (not all) Exchange 2007 DLLs developers commonly ask if they can redistribute:

 

Microsoft.Exchange.Data.Common.dll

Microsoft.Exchange.Data.Directory.dll

Microsoft.Exchange.Data.dll

 

Here are some related links:

 

Find End User License Terms for Microsoft Software Licensed by Microsoft or the Computer Manufacturer

http://www.microsoft.com/about/legal/useterms/default.aspx

 

Microsoft .NET Namespaces for Exchange

http://msdn.microsoft.com/en-us/library/aa580926.aspx

 

Handling results of calling Power Shell – Multivalve and string arrays.

http://blogs.msdn.com/webdav_101/archive/2008/02/08/handling-results-of-calling-powershell-multivalued-and-string-arrays.aspx

 

How the Runtime Locates Assemblies

http://msdn.microsoft.com/en-us/library/yx7xezcf(VS.85).aspx