문제

나는 구형 프로젝트 (.NET 2)를 Visual Studio 2013으로 가져와야했으며 Microsoft 기본 Interop 어셈블리를 사용합니다.

Visual Studio는 프로젝트에 대한 참조를 추가해야한다고 밝혔다.이제 나는 갔고, 일부 독서를했고, Microsoft는 PIA를 Office 2010에만 공개했습니다.(나는 Office 2013이있다)

이제 내가 알고 싶은 것은 무엇입니까?

  1. Office 2013에서 작업 할 수 있으며 역호 호환 가능합니까?
  2. 그리고 그렇다면 미래를 위해가는 좋은 길이면?호환 될 것인가?내가 볼 수 있고 Windows 8에는 3.5가 아닌 Windows 8이 포함되어 있으며 대부분의 새 컴퓨터가 Office 2012 또는 2013을 갖게 될 것입니다.
도움이 되었습니까?

해결책

PIA는 이전 .NET 버전 (V4 이전)에 의해서만 필요하며 역사적인 아티팩트입니다. 그들은 철저히 우아하게 "아니오 PIA"기능이라고도하는 "포함 된 Interop Types"기능으로 완전히 교체되었습니다. 지원되는 Visual Studio 2010 이후 참조 어셈블리를 선택하면 속성 창에서 다시 찾을 수 있습니다. True의 기본값입니다. 기본 기술을 다루는 좋은 비디오는 여기를 이용할 수 있습니다 .

Microsoft는 Office 2013 용 PIA를 게시하지 않는 이유입니다. 대신 interop 유형을 삽입 할 것으로 예상합니다.

피쳐는 매우 바람직하므로 고객이 기계에 PIA를 설치하고 설치 프로그램과 함께 포함시킬 수있는 것을 피할 수 있습니다. 문제를 해결할 때 문제를 해결하는 것은 전적으로 너무 일반적인 사고입니다. 또한 Office 용 PIA는 매우 크고 interop 유형을 포함하는 큰 이점은 어셈블리에 실제로 사용하는 유형 만 포함되어 있다는 것입니다. 수많은 메가 바이트가 몇 킬로바이트로 감소했습니다.

워크 플로가 조금 다릅니다. 참조 추가 대화 상자, .NET Framework 탭에서 사용할 수있는 Microsoft.Office.Interop 어셈블리에 대한 참조를 추가하는 대신 이제 COM 탭을 사용합니다. Excel을 사용하는 프로그램의 interop 유형을 생성하는 "Microsoft Excel 15.0 Object Library"를 선택하십시오. 이전에 사용 된 PIA를 사용한 이전 프로젝트를로드 한 다음 해당 참조 어셈블리를 제거하고 COM 탭에서 다시 추가하십시오.

기능이 손실되어 실제로 Dev 시스템에 설치되지 않은 Office의 이전 버전을 목표로하는 것이 더 어렵습니다. 그것이 요구 사항이면 해당 버전에 대해 PIA가 여전히 필요합니다. 포함 된 Interop 유형을 속성 창에서 true로 수행하십시오. 실제로이 작업이 의심 스럽습니다. Microsoft는 새로운 버전과 완전히 이전 버전과 완전히 호환되는 데 어려움을 겪고 있습니다. 그들은 15 년 동안 그것을 지켜 주었지만 그것은 증기가 부족했습니다. 최악의 시나리오는 기계에 설치 한 것보다 최신 버전을 대상으로하고 있습니다. 매우 을 사용하여 프로그램을 실제로 예외를 진단하는 데 어려움을 겪습니다.

코드를 사용하여 코드를 작게 만들어야합니다. 합성 "AccessViolationException"클래스는 "XxxxClass"인터페이스 만 포함되지 않습니다. new 문장에서 "Xxxx"라는 단어를 제거하기 만하면됩니다.

다른 팁

VS Office 365가있는 2015 커뮤니티 - COM 개체에서 추가가 작동하지 않는 이유로솔루션은 GAC로 이동하여 Interop 어셈블리를 찾고 Temp 디렉토리에 복사 한 다음 DLL과 같은 프로젝트에 추가합니다.

또한 이제는 모르는 경우 Windows 8에는 이전 버전의 .NET Framework가 있지만 기본적으로 설치되지 않습니다.프로그램 기능으로 이동 --------->에 기능 추가 ----> 및 첫 번째 확인란은 .NET 3.0 및 어쩌면 2.0이어야합니다.WSUS 서버에있는 경우 Windows에서 Windows Update 서버에서 파일을 가져 오도록 알려야합니다.도움이되기를 바랍니다!

공식적으로 PIA의 역 호환성은 사무실의 역효과가 없습니다.사실 그것은 작동합니다.

역방향 호환성 이유로 나는 몇 년 이후 사무실 XP의 PIA를 사용하고 있으며 Office XP, 2003, 2007 년 및 2010 년 (아직 테스트되지 않음)과 Windows XP, Vista, 7 및 8에서 잘 작동합니다.

다른 버전의 Windows와의 호환성을 위해 .NET Framework 3.5를 사용하고 있습니다.

미래를 위해

... 그것은 당신이 PIA와 함께하고있는 것에 달려 있습니다.가능한 경우 열린 XML 파일을 직접 처리하거나 Word / Excel 용 추가 기능을 직접적으로 만들 수있는 것이 훨씬 낫습니다.

방금 Visual Studio 2013 Express가 더 이상 Office-Support가 없음을 알아 냈습니다.적어도 프로젝트가 작동하려면 적어도 프로 버전이 필요합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top