Solved

C# using DtSearch API

Posted on 2010-08-12
5
1,585 Views
Last Modified: 2013-12-17
I'm deploying a C# application that uses DtSearch on a number of different machines.  I'm finding that when the app is built with dtsearchNetApi.dll, it runs successfully on Windows XP machines but not Windows 2003 machines.  When the app is built with dtsearchNetApi2.dll, it runs on Windows 2003 machines but not Windows XP machines.  The failure occurs when trying to execute a method on an instance of a class that uses dtSearch.Engine ("using dtSearch.Engine;").  So something like this:

IndexReader ir = new IndexReader(lstItems);  // OK
ir.ReadIndexes();  // Fails

System.IO.FileNotFoundException: The specified module could not be found. (Exception from HRESULT: 0x8007007E)

The app is deployed with ClickOnce, and either dtsearchNetApi.dll or dtsearchNetApi2.dll is included in the Application Files on the Publish tab. The main dtSearch library - dten600.dll - is registered on all machines.
0
Comment
Question by:jkavx
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
5 Comments
 
LVL 23

Accepted Solution

by:
Stacy Spear earned 500 total points
ID: 33430013
You probably need to include the file (copy the dll) into your solution and set it to publish. I'm thinking that even unregistered, if the dll is in the same directory as the executable, it will see it.
0
 

Author Comment

by:jkavx
ID: 33430411
I've tried referencing dten600.dll.  This builds interop.dtengine.dll into the solution.  But it doesn't help.  
0
 

Author Comment

by:jkavx
ID: 33434919
If I put msvcr71.dll in the directory of the executable, I can use dtsearchNetApi.dll on a Windows 2003 machine.  This link "http://support.dtsearch.com/dts0197.htm" includes this:

"You may also be missing one or more of the Microsoft runtime library DLLs.  For dtSearchNetApi.dll, msvcr71.dll is required.  For dtSearchNetApi2.dll the MFC 8.0 and CRT 8.0 merge modules are required."

But using ClickOnce for deployment, I'm not sure how to include this dll in the deployment package.  I've put it in the compile directory, and included it in the project (Show all files in the solution explorer and right click on include).  Then I set the properties of the included dll to "Build Action:  None and CopyToOutputDirectory:  CopyAlways."  But on the Publish tab, which I click on Application Files, the dll does not appear.  Am I missing a step here, or not setting the properties correctly?
0
 

Author Comment

by:jkavx
ID: 33451260
I find that I can include the dll by:  Project\Add Existing Item, select the dll that was added, and change CopytoOutputDirectory to CopyAlways (Build Action will be set to Content).
0
 

Author Closing Comment

by:jkavx
ID: 33451266
The dten600.dll was not the issue.  Msvcr71.dll needed to be added for dtsearchNetApi.dll to work on the Windows 2003 server.
0

Featured Post

MIM Survival Guide for Service Desk Managers

Major incidents can send mastered service desk processes into disorder. Systems and tools produce the data needed to resolve these incidents, but your challenge is getting that information to the right people fast. Check out the Survival Guide and begin bringing order to chaos.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction Hi all and welcome to my first article on Experts Exchange. A while ago, someone asked me if i could do some tutorials on object oriented programming. I decided to do them on C#. Now you may ask me, why's that? Well, one of the re…
Exception Handling is in the core of any application that is able to dignify its name. In this article, I'll guide you through the process of writing a DRY (Don't Repeat Yourself) Exception Handling mechanism, using Aspect Oriented Programming.
With Secure Portal Encryption, the recipient is sent a link to their email address directing them to the email laundry delivery page. From there, the recipient will be required to enter a user name and password to enter the page. Once the recipient …
I've attached the XLSM Excel spreadsheet I used in the video and also text files containing the macros used below. https://filedb.experts-exchange.com/incoming/2017/03_w12/1151775/Permutations.txt https://filedb.experts-exchange.com/incoming/201…

733 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question