Office 솔루션 배포 문제 해결
적용 대상: Visual Studio
이 문서에서는 Office 솔루션을 배포할 때 발생할 수 있는 일반적인 문제를 해결하는 방법을 소개합니다.
이 문서의 정보는 VSTO(문서 수준 프로젝트 및 Visual Studio Tools for Office) 추가 기능 프로젝트에 적용됩니다. Office 응용 프로그램 및 프로젝트 유형에서 사용할 수 있는 기능을 참조하세요.
이벤트 뷰어를 사용하여 Office 솔루션 문제 해결
Windows에서 이벤트 뷰어를 사용하여 Office 솔루션을 설치하거나 제거할 때 Visual Studio Tools for Office 런타임에서 캡처한 오류 메시지를 볼 수 있습니다. 이벤트 로거에서 이러한 메시지를 사용하여 설치 및 배포 문제를 resolve 수 있습니다. 자세한 내용은 Office 솔루션에 대한 이벤트 로깅을 참조하세요.
어셈블리 이름을 변경하면 충돌이 발생합니다.
솔루션을 이미 배포한 후 Project Designer애플리케이션 페이지에서 어셈블리 이름 값을 변경하면 게시 도구는 설치 패키지를 수정하여 Setup.exe 파일 1개와 배포 매니페스트 2개를 만듭니다. 두 개의 매니페스트 파일을 배포하는 경우 다음 조건이 발생할 수 있습니다.
- 최종 사용자가 두 버전을 모두 설치하는 경우 애플리케이션은 두 VSTO 추가 기능을 모두 로드합니다.
- 어셈블리 이름이 변경되기 전에 VSTO 추가 기능이 설치된 경우 최종 사용자는 업데이트를 받지 못합니다.
이러한 조건을 방지하려면 솔루션을 배포한 후 솔루션의 어셈블리 이름 값을 변경하지 마세요.
업데이트 확인에 시간이 오래 걸립니다.
Visual Studio 2010 Tools for Office 런타임은 관리자가 매니페스트 및 솔루션을 다운로드하기 위한 제한 시간 값을 설정하는 데 사용할 수 있는 레지스트리 항목을 제공합니다.
제한 시간 값을 설정하는 방법
레지스트리에서 다음 키로 이동합니다.
HKEY_CURRENT_USER\Software\Microsoft\VSTA
AddInTimeout 하위 키에서 시간 제한 값을 밀리초 단위로 설정합니다.
AddInTimeout 하위 키가 없는 경우 DWORD로 만듭니다.
네트워크 파일 공유를 업데이트하거나 게시할 수 없음
업데이트가 게시되는 동안 솔루션의 Setup.exe 파일이 프로세스에 잠겨 있는 경우 네트워크 파일 공유에 있는 Office 솔루션은 업데이트 중에 잘못된 메시지를 표시할 수 있습니다. "웹에 'setup.exe'을 추가할 수 없습니다. 'setup.exe' 파일이 이미 이 웹에 있습니다."
파일 잠금을 방지하기 위해 최종 사용자에게 공유를 읽기 전용으로 만들 수 있습니다. 그러나 문서가 공유에 있는 경우 최종 사용자에게 읽기 전용이 됩니다.
Microsoft Office에 대한 필수 구성 요소가 설치되지 않음
.NET Framework, Visual Studio Tools for Office 런타임 및 Office 기본 interop 어셈블리를 Office 솔루션과 함께 배포된 필수 구성 요소로 설치 패키지에 추가할 수 있습니다. 기본 interop 어셈블리를 설치하는 방법에 대한 자세한 내용은 Office 솔루션을 개발하도록 컴퓨터 구성 및 방법: Office 기본 interop 어셈블리 설치를 참조하세요.
Localhost를 사용하여 게시하면 설치 문제가 발생할 수 있습니다.
문서 수준 솔루션의 게시 또는 설치 위치로 사용하는 http://localhost
경우 게시 마법사 는 문자열을 실제 컴퓨터 이름으로 변환하지 않습니다. 이 경우 개발 컴퓨터에 솔루션을 설치해야 합니다. 배포된 솔루션이 개발 컴퓨터에서 IIS를 사용하도록 하려면 localhost 대신 모든 HTTP/HTTPS/FTP 위치에 대해 정규화된 이름을 사용합니다.
캐시된 어셈블리는 업데이트된 어셈블리 대신 로드됩니다.
.NET Framework 어셈블리 로더인 Fusion은 프로젝트 출력 경로가 네트워크 파일 공유에 있고 어셈블리가 강력한 이름으로 서명되고 사용자 지정의 어셈블리 버전이 변경되지 않을 때 어셈블리의 캐시된 복사본을 로드합니다. 이러한 조건을 충족하는 어셈블리를 업데이트하는 경우 캐시된 복사본이 로드되어 다음에 프로젝트를 실행할 때 업데이트가 표시되지 않습니다.
프로젝트가 실행될 때마다 Fusion이 어셈블리를 다운로드할 수 있도록 Visual Studio를 구성할 수 있습니다.
캐시된 복사본을 로드하는 대신 어셈블리를 다운로드하는 방법
- 메뉴 모음에서 프로젝트,<ProjectName> 속성을 선택합니다.
- 애플리케이션 페이지에서 어셈블리 정보를 선택합니다.
- 어셈블리 버전의 수정 번호(세 번째 필드)를 와일드 카드(*)로 설정합니다. 예를 들어 "1.0.*"입니다. 그런 다음 확인 단추를 선택합니다.
어셈블리 버전을 변경한 후 강력한 이름으로 어셈블리에 계속 서명할 수 있으며 Fusion은 최신 버전의 사용자 지정을 로드합니다.
참고
Visual Studio 2017부터 어셈블리 버전에서 와일드카드를 사용하려고 하면 빌드 오류가 발생합니다. 어셈블리 버전의 와일드카드가 MSBuild 결정적 기능을 중단하기 때문입니다. 어셈블리 버전에서 와일드카드를 제거하거나 결정성을 사용하지 않도록 설정하라는 지시가 표시됩니다. 결정적 기능에 대한 자세한 내용은 일반적인 MSBuild 프로젝트 속성 및 빌드 사용자 지정을 참조하세요.
URI에 US-ASCII가 아닌 문자가 있으면 설치가 실패합니다.
OFFICE 솔루션을 HTTP/HTTPS/FTP 위치에 게시하는 경우 경로에는 US-ASCII에 없는 유니코드 문자가 있을 수 없습니다. 이러한 문자는 설치 프로그램에서 일관되지 않은 동작을 일으킬 수 있습니다. 설치 경로에 US-ASCII 문자를 사용합니다.
개발 컴퓨터에 솔루션을 게시하고 설치할 때 수동으로 제거하라는 메시지가 나타납니다.
Office 솔루션을 빌드하면 빌드된 버전이 자동으로 등록됩니다. 이전에 개발 컴퓨터에 동일한 솔루션을 게시하고 설치한 경우 Visual Studio Tools for Office 런타임은 다음에 솔루션을 빌드, 다시 빌드 또는 게시한 후 게시된 버전과 빌드된 버전의 설치 경로가 다르다는 것을 감지합니다. "다른 버전이 현재 설치되어 있고 이 위치에서 업그레이드할 수 없으므로 사용자 지정을 설치할 수 없습니다." 오류 메시지가 표시됩니다. 레지스트리 키는 솔루션을 다시 빌드할 때마다 업데이트됩니다. 따라서 새 버전을 게시, 디버그 또는 실행하기 전에 이전 버전을 제거해야 합니다.
메시지가 표시되지 않도록 하려면 개발 컴퓨터에 다른 사용자 계정을 만들어 배포를 테스트합니다. 또는 다음에 솔루션을 게시, 디버그 또는 다시 빌드하기 전에 컴퓨터에 설치된 프로그램 목록에서 버전을 제거할 수 있습니다.
솔루션을 설치할 때 catch되지 않은 예외 또는 메서드를 찾을 수 없음 오류
배포 매니페스트( .vsto 파일), Office 애플리케이션, 문서 또는 통합 문서를 열어 Office 솔루션을 설치하는 경우 다음 조건에 대한 오류 메시지가 나타날 수 있습니다.
- 메서드를 찾을 수 없습니다.
- MissingMethodException.
- catch되지 않은 예외입니다.
이러한 오류 메시지를 방지하려면 설치 프로그램을 실행하여 솔루션을 설치합니다.
설치 프로그램을 실행하지 않고 솔루션을 설치하는 경우 설치 관리자는 필수 구성 요소에 대해 검사 않습니다. 설치 프로그램은 올바른 버전의 필수 구성 요소를 확인하고 필요에 따라 설치합니다.
InstallShield Limited Edition 프로젝트가 빌드된 후 추가 기능의 매니페스트 레지스트리 키가 변경됨
VSTO 추가 기능 설치 프로그램의 일부인 매니페스트 레지스트리 키는 InstallShield Limited Edition 프로젝트를 빌드할 때 .vsto 에서 .dll.manifest 로 변경되는 경우가 있습니다.
이 문제를 해결하려면 다른 솔루션에서 InstallShield Limited Edition 프로젝트를 만들거나 COMPANYName.AddinName을 VSTO 추가 기능의 이름이 포함된 레지스트리 키 값으로 사용합니다.
Office 솔루션용 ClickOnce 설치 관리자가 기본 interop 어셈블리를 설치하지 않음
Office 솔루션에 대해 ClickOnce가 만드는 설치 프로그램을 실행하면 PIA가 아직 설치되어 있지 않은 경우에만 Office 기본 INTEROP 어셈블리(PIA)에 대한 설치 관리자가 실행됩니다.
설치 프로그램이 PIA를 올바르게 설치하지 않는 경우 설치 디렉터리에서 o2007pia.msi 이름이 인 설치 관리자 파일을 실행하여 수동으로 설치합니다.
Office 솔루션을 다시 설치하면 인수가 범위를 벗어나는 예외가 발생합니다.
Office 솔루션을 ArgumentOutOfRangeException 다시 설치하면 다음과 같은 오류 메시지와 함께 예외가 나타날 수 있습니다. 지정된 인수가 유효한 값 범위를 벗어났습니다.
이 상황은 설치 위치의 URL에 대한 대/소문자 구분이 다른 경우에 발생합니다. 예를 들어 Office 솔루션을 http://fabrikam.com/ExcelSolution.vsto
처음 설치한 후 두 번째로 사용한 http://fabrikam.com/excelsolution.vsto
경우 이 오류가 표시됩니다.
메시지가 표시되지 않도록 하려면 Office 솔루션을 설치할 때 동일한 대/소문자를 사용합니다.
웹에서 배포 매니페스트를 열어 ClickOnce 솔루션을 설치할 수 없습니다.
사용자는 웹에서 배포 매니페스트를 열어 Office 솔루션을 설치할 수 있습니다. 그러나 IIS(인터넷 정보 서비스)의 일부 설치는 .vsto 파일 이름 확장명을 차단합니다. Office 솔루션을 배포하는 데 사용하기 전에 IIS에서 MIME 형식을 정의해야 합니다.
IIS 7에서 MIME 형식을 정의하는 방법에 대한 자세한 내용은 MIME 형식 추가(IIS7)를 참조하세요.
확장을 .vsto 로 설정하고 MIME 형식을 application/x-ms-vsto로 설정합니다.