문제

워드 애드 인 구성 요소와 구성 요소를 설치하기위한 Visual Studio 설정 프로젝트를 만들었습니다.

Office 2003이 설치된 깨끗한 기계에서는 추가 구성 요소가 Word로로드되도록하는 것이 불가능합니다.

인터넷 검색 문제는 이것이 어셈블리가 신뢰할 수 없기 때문임을 시사합니다. 나는 명령 줄 도구를 사용하여 조립품을 완전한 신뢰를 주었다.

caspol -af AssemblyName.dll

이것은 아무런 차이가 없으며, 강제는 여전히 단어로로드되지 않습니다. Caspol은 메시지를 인쇄합니다 "모든 GAC 어셈블리는 항상 완전한 신뢰를 얻기 때문에 전체 신뢰 목록은 더 이상 의미가 없습니다. GAC의 보안 정책에 사용되는 어셈블리를 설치하여 신뢰할 수 있도록해야합니다."

GAC에 어셈블리를 넣도록 설치 프로그램을 변경하면 단어로 올바르게로드 할 수 있습니다. 그러나 구성 요소는 향후 공통 어셈블리를 사용하여 다른 .NET 응용 프로그램을 공유하고 GAC에 이러한 라이브러리를 추가하는 것은 바람직하지 않습니다.

GAC 외부에 설치할 때 구성 요소를로드 할 수 있도록 보안을 설정하는 방법을 아는 사람이 있습니까?

도움이 되었습니까?

해결책

다음 명령을 수동으로 실행하여 GAC 외부에서 단어가 어셈블리를 실행할 수 있도록 보안을 설정할 수 있습니다. 이것은 완전한 신뢰를 가진 새로운 그룹을 만듭니다.

caspol.exe -u -addgroup All_Code -url "\*"  FullTrust -n AssemblyName.dll

Microsoft는 다음 사이트의 설치 프로그램에 대한 예제의 사용자 정의 작업이 있습니다. MSDN에 링크, 이 명령을 설치 프로그램 사용자 정의 작업으로 포함시킬 수 있습니다.

다른 팁

Assembies를 GAC에 설치할 필요는 없습니다. 애드 인 어셈블리의 보안 정책을 정의 할 필요도 없습니다.

Office 2003과 함께 .NET 2.0을 사용하고 있습니까? Office 2003 및 Office XP에는 .NET 2.0 Addins가로드되는 문제가 있습니다. .NET 1.1 프레임 워크를 사용하여로드됩니다 (기계에 존재하는 경우 가능성이 높습니다). 따라서 사무실 설치를 Microsoft .NET Framework 2.0 (KB908002)의 공유 추가 지원 업데이트.

이 패치를 설치 프로그램의 사전 반품에 반드시 포함시켜야합니다.

자세한 내용을 찾으십시오 이 질문에 대한 답변.

물론 대상 시스템에 올바른 버전의 PIAS가 설치되어 있어야합니다 (이 점을 거의 잊어 버리거나 잘못 또는 누락 된 PIA는 추가 인이로드되지 않는 주요 문제 중 하나입니다).

업데이트: KB908002는 PC에서 vs 2005가 필요합니다. 공유 추가 지원 업데이트를 설정 프로젝트의 사전 반품 대화 상자에 추가합니다. 이 경우 다음 해결 방법을 사용해야합니다.

Visual Studio 2008을 사용하는 경우 해결 방법 kb908002가 사전 반품 추가 대화 상자에 나열되도록 아래에 언급되었습니다.

  1. Visual Studio 2005가 설치된 컴퓨터에서 수정 사항을 다운로드하여 설치하십시오.
  2. 로 이동 C : Program Files Microsoft Visual Studio 8 SDK v2.0 bootstrapper 패키지, KB908002 폴더를 찾으십시오.
  3. Visual Studio 2008이 설치된 시스템에 로그온하고 KB908002 폴더를 C : Program Files Microsoft SDKS Windows V6.0A Bootstrapper 패키지
  4. 이제 Visual Studio 2008 Machine에서 사전 반품 목록으로 이동하면 수정 사항이 표시됩니다.

2005 년이 필요하지 않은 또 다른 옵션은 다음과 같습니다.

  1. 수정 사항을 임시 폴더로 다운로드하십시오.
  2. 명령 프롬프트를 열고 수정이있는 폴더로 이동하고 다음 명령을 시작하여 자체 추출 설치 파일에서 파일을 추출합니다.

    vs2005-kb908002-enu-x86.exe /C /T:C:\KB908002\
    cd \KB908002
    

    이제 폴더 C : KB908002에는 vs2005-kb908002-enu-x86.exe /c /t : c : tmp kb908002 tmp, setup.exe 및 bootstrapper.msi

  3. 우리는 bootstapper.msi의 내용에 관심이 있으므로이 파일의 내용을 추출합니다.

    msiexec /a bootstrapper.msi /qb TARGETDIR=C:\KB908002\tmp\
    cd tmp
    
  4. 마지막으로 추출한 패키지 폴더를 Windows SDK의 부트 스트랩퍼 폴더로 복사합니다.

    xcopy /E "C:\KB908002\tmp\SDK\BootStrapper\Packages" "C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages"
    
  5. 이제 Visual Studio 2008에서 사전 반품 목록으로 이동하면 수정 사항이 표시됩니다.

Add-In Assembly를 GAC에 넣는 것이 필수라고 생각하지 않습니다. 배포의 단계가 놓친 것 같습니다.

MS Word와 같은 사무실 응용 프로그램은 특정 레지스트리 항목을 읽음으로써 추가 기능을로드합니다. 배포 중에 이러한 항목을 작성하지 않을 가능성이 높습니다.

이 모든 레지스트리 사업의 세부 사항을 배우려면 이것 기사. 또한 일반적으로 사무실 애드 인 배포에 대해 읽으려면 참조하십시오. 이것 기사

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