2012-11-16 1 views
0
내가 지금 몇 시간 동안 사무 자동화를 사용하여 다음 코드를 사용하여 Word 문서에 데이터를 병합하기 위해 왔습니다

:사무 자동화 null 참조 예외

  oWord = new Microsoft.Office.Interop.Word.Application(); 
      oWord.Visible = false; 
      oDoc = oWord.Documents.Open(
      ref oTemplate, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, 
         ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing); 

내가 가진 적이을 과거 코드의 문제 였고 모든 클라이언트는 참조 된 dll (office interop의 v12)과 동일한 세트를 사용합니다. 그러나 며칠 전 나는 어떤 클라이언트가 마지막 줄

oWord.Documents.Open 

정확한 동일한 코드에 널 (null) 객체 참조 예외를 발송하고 DLL을 일부 클라이언트에서 작동하지만, 그렇게에 충돌 것으로 나타났습니다. 다른 사람도 같은 문제가 있었습니까?

문제가있는 컴퓨터 중 하나에서 .NET 버전을 모두 제거하고 원래 사용했던 버전 (.NET 2.0SP1) 만 다시 설치했는데 문제가 해결되지 않았습니다. 문제가있는 고객의 사무실 설치/업데이트와 관련이있을 수 있습니까?

추신 : 나는 클라이언트에 vstor (사무 자동화 Visual Studio 어셈블리)를 설치하는 것을 시도해 보았습니다.

+0

'누락'이란 무엇입니까? –

+0

@ColeJohnson 일부 선택적 참조 [링크] (http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.documents.open (v = office.11) .aspx) – Themos

+0

글쎄 그건 당신의 문제 일 가능성이 높습니다. 누락은 null이며 선택적 일 때 전달하는 것은 문제를 묻는 것입니다. 함수가 null을 역 참조하려고 시도하는 것으로 보입니다. –

답변

0

VSTOR를 설치하는 경우에도 비슷한 오류가 발생했습니다 ... 모든 컴퓨터에서 작동하도록 만드는 유일한 방법은 Interop dll의 사무실을 선택하고 프로젝트의 루트를 "콘텐츠"로 포함하는 것입니다. "copy aways"로 표시됩니다. 또한 거짓 참조에 "로컬 복사"점수를받습니다. 시도하여 문제가 해결되는지 확인하십시오.

+0

제안에 감사드립니다, 나는 그것에 대해 조사 할 것입니다! 내가 시도한 또 다른 일은 2007 + 2010 Office 설치 문제를 해결해야하는 모든 클라이언트 설치에 2010 interop dll을 사용하는 것이지만 2003 년 설치에 어떤 영향을 미치는지는 알지 못합니다. – Themos

+0

Interop dll의 Office는 버전에 따라 다르며 프로젝트의 참조에 영향을 미칩니다. 예 : 2007 년에 dll 버전을 구현 한 경우 다른 버전의 컴퓨터에서 제대로 실행되지 않았습니다. –