2013-07-30 2 views
0

때문에 대상 플랫폼 x86에서 작동하지 :C#을 exe 인 내가 네트워크 (나는 <a href="http://www.codeproject.com/Articles/62357/Monitoring-Access-to-Your-Shared-Files-on-Network" rel="nofollow">Abdollah Zawari's ShareMoniter</a>을 수정하고있어), 난과 같이 openfiles.exe 시작하여이 작업을 수행 할 내 공유 파일에 액세스 로그하기 위해 노력하고있어,

 var process = new Process(); 
     process.StartInfo.FileName = "openfiles.exe"; 
     process.StartInfo.Arguments = "/query /FO CSV /v"; 
     process.StartInfo.UseShellExecute = false; 
     process.StartInfo.CreateNoWindow = true; 
     process.StartInfo.RedirectStandardOutput = true; 
     try 
     { 
      process.Start(); 
      if ((process.StandardOutput != null)) 
      { 
       var result = process.StandardOutput.ReadToEnd().Trim().Replace("\"", ""); 
       var lines = result.Split('\n');... 

Access 데이터베이스에 결과를 기록하려고하지만 jet.Oledb.4.0 또는 ace.oledb.12.0은 프로젝트 대상 플랫폼을 x86으로 설정 한 경우에만 작동합니다.

문제는

난 내가 x86 용 프로젝트를 실행할 때 openfiles.exe 아무것도 반환하지 않습니다이다 (시작 openfiles.exe 및 명백한 오류로 종료하지만, 빈 문자열은 ""반환) 매우 특히이 분야에서 초보자, 그래서 문제에 대한 조언이 크게 될 advence

+0

대상 플랫폼을 설정하려고 시도 했습니까? ** 모든 CPU **? –

+0

예, x86 이외의 대상 플랫폼에서 "microsoft.ace.oledb.4.0 공급자가 로컬 컴퓨터에 등록되지 않았습니다"라는 오류가 발생합니다. – bentheiii

답변

0

당신이 64 비트를 지원하지 않는 사용중인 OLEDB의 버전

감사 감사 것입니다, 당신은 새를 사용해야합니다64 비트 모두에서 작동하는 버전. 대신 Microsoft Access Database Engine 2010을 사용하여 데이터베이스에 액세스하면 문제가 해결됩니다.