Will I ship the application that make use of search feature available on Vista and windows Server 2008?

The search feature available was available. We want to use the same to search a set of document content that our application copies during install and show useful information based on search.

Windows Desktop Search 3.0 is fully integrated everywhere in Windows Vista. We developed source code in .Net and found it working cool on Vista machine.

In windows Server 2008, when we ran the application, search related functionality did not work. We figured out from this link that we need to either have Search Server 2008 Express Edition or enable windows Search service role in Windows Server 2008. Alas one problem is analyzed. During install, we have to ask state that this is the need for search feature to work.

Now came the next, one of the folders installed under Program Data was not being indexed and search was not reflecting contents from that folder. We also found the same problem for folders under Program files. We figure out that these folders are enabled for indexing by default.

We found from MSDN a way to configure search locations programmatically. But they all want us to make use of the the type library (it’s called Search.tlb) in the Lib folder of the Windows Search SDK. Though they helped us to move forward in solving this problem.

What will happen on plain vanilla end -user machines that have Vista and Windows Server 2008 installed? they have Windows Search service and hence they expect the application to work, but to configure search locations we need library in Windows SDK. Should we ship the SDK or ask the user to install SDK? The users are not going to be like this as install will take a long time.

Thanks to Stanley Yao’s Blog , there is another option to get the same feature by referencing Microsoft.Search.Interop.dll, But this also is coming from  Windows Search SDK. helped me with this.

How to proceed having the feature and also keeping my end user happy?

I remember using Microsoft indexing service with COM and when I looked up there are COM interfaces like ISearchManager, ISearchCatalogManager and  I am not seeing where these interfaces are exposed through .NET. Should I try the COM way?. Wish me good luck!