-1

NetOffice를 사용하고 .NET 2.0을 사용하여 VS2015에서 Outlook 추가 기능을 만들었으므로 관리자가 아닌 사용자가 설치할 수 있도록 패키지를 만들어야합니다 (관리자 권한이 필요하지 않음). 일반적으로 ClickOnce를 사용하지만 VSTO를 사용하지 않기 때문에 설치가 필요하지 않으므로 Visual Studio 2015 Installer Project (사용하기 쉽다)를 다운로드하여 설치했습니다.관리자가 아닌 사용자를위한 MSI

This SO question/answer 내가 찾고있는 해결책 인 것 같지만 MSI 파일을 실행할 때 여전히 관리자 암호가 필요합니다. 관리자 암호를 입력하면 모든 파일이 사용자의 AppData 폴더에 추가됩니다. 그렇다면 관리자 비밀번호가 필요한 이유는 무엇입니까? 나는 무엇을 여기에서 놓치고 있냐?? SO 질문에 설명

9 단계 :

  1. 사용 타입 (51) 사용자 정의 조치에서 InstallUISequence에 항상 ALLUSERS (사용자 별 옵션)
  2. 파일 만에 해제 작성해야합니다 표준 사용자가 액세스 할 수있는 폴더 ALLUSERS가 사용자 별 설정으로 항상 설정되어 있다고 가정하면 사용자별로 리디렉션되지 않으므로 ProgramFilesFolder가 아닌 리디렉션 가능 폴더 속성을 사용할 수 있습니다.
  3. LocalAppDataFolder 아래의 위치에 앱을 설치하십시오.
  4. 모든 레지스트리 설정은 레지스트리 테이블의 루트 열에있는 HKCU에 기록되어야합니다.
  5. 신임 정보 프롬프트를 표시하지 않으려는 요약 정보 스트림의 단어 수 등록 정보 비트 3을 뒤집으십시오.
  6. 부트 스트 래퍼 (일반적으로 setup.exe)가있는 경우 requestedExecutionLevel을 매니 페스트하여 asInvoker를 실행하십시오.
  7. ICE는 ICE가 사용자 별 및 컴퓨터 별 상태를 잘못 혼합했는지 확인하므로 ICE 유효성 검사를 통과해야합니다.
  8. 표준 사용자 계정과 상승 된 명령 프롬프트에서 모두 동작을 확인하여 테스트하십시오.
  9. 패키지의 사용자 특성에 대한 사용자 문서를 제공합니다. 이는 현재의 응용 프로그램 설치에서 비정형이기 때문입니다. 여기

내가 무슨 짓을했는지의 :

1 단계 : 설치 프로젝트 ->보기 -> 사용자 인터페이스 - False로> 설정 "InstallAllUsersVisible"(SO 대답 당)

2 단계 : 설치 파일 시스템에서 "User 's Application Data Folder"를 추가 한 다음 "Local", "ProjectName"을 추가 한 다음 Project Output -> Primary Output을 추가했습니다. 나는 "응용 프로그램 폴더"를 제거하려고했지만 그것이 필요하고 삭제되지 않는다고 말합니다.

3 단계 : 나는 모든 레지스트리 키를 추가하지 않은 : 나는

4 단계 ...이 내가 위에서 무슨 짓을 믿습니다. 필요한 것입니까?

5 단계 : SO 답변에 따라 Orca를 다운로드하고 MSI 파일을 열었습니다. 그러나보기 -> 요약 정보로 가서 단어 수 속성을 찾으면 거기에 없습니다. 나는 모든 테이블을 들여다 보았고 어디에서나 그것을 발견 할 수 없다.

6 단계 : 설치 파일 속성에 "필수 구성 요소를 설치하기위한 설치 프로그램 만들기"의 선택을 해제 한 후에는 더 이상 setup.exe 파일이 없습니다.

7 단계 : ICE 밸리데이션에서 몇 가지 광고 문안을 읽었지만 여기서해야 할 일이 무엇인지 잘 모릅니다.

8 단계와 9 단계는 지금 ​​건너 뛰었습니다.

기타 : Orca를 둘러 보면서 DIRCA_TARGETDIR이 프로그램 폴더로 설정되어 CustomAction 테이블에서 [AppDataFolder] [Manufacturer] [ProductName]으로 변경되었음을 알았습니다.

+0

저는 수년 동안 많은 office addin 설치 프로그램/블로그 기사를 저술했습니다. IMO MSI 사용의 요점은 모든 기본 설정을 설치하고 컴퓨터 당 MSI를 설치하기위한 부트 스트 래퍼를 가질 수 있다는 것입니다. 귀하의 요구 사항이 사용자 별/승격 된 권한을 필요로하지 않는 경우 ClickOnce를 사용하지 않는 이유는 무엇입니까? 나는 그것을 나 자신을 돌보지 않을지도 모르지만 그것은 그것을 위해 설계된 것이다. –

+0

나는 항상 ClickOnce를 사용했지만,이 추가 기능에서는 VSTO (사용자 컴퓨터에는 설치되지 않음)를 사용할 수 없습니다. 그래서 NetOffice를 사용하고 "Developer Toolbox"를 사용하여 프로젝트를 만들었습니다. VS2015에서 프로젝트 속성을 열면 게시 탭이 나타나지 않고 서명 탭 아래에 ClickOnce가 회색으로 표시됩니다. ClickOnce를 사용하는 방법을 파악할 수 있다면 즉시 할 수 있습니다. – pheeper

+0

흠 ... 나는 그 SDK를 사용한 적이 없다. 아마도 MSBuild 프로젝트 파일에 추가 할 수있는 가져 오기 대상이있을 수 있습니다. 또 다른 옵션은 https://github.com/Squirrel/Squirrel.Windows를 보면 될 것입니다. 오해하지 마세요. MSI를 좋아하고 기계별로 설치하는 것을 좋아하지만 스토리가 실제로 사용자마다 있다고 생각하면 당신이 좋아할만한 다른 옵션이 있습니다. –

답변

0

기본적으로 VSTO 등록에 필요한 레지스트리 항목을 알아 내고 Visual Studio 기능 만 사용하고 WiX와 같은 도구에서 사용할 SO 정보는 대부분 무시해야합니다.

사용자 당 InstallAllUsers false가 정확합니다.

LocalAppDataFolder를 사용하려면 파일 시스템보기로 이동하여 해당 노드를 마우스 오른쪽 버튼으로 클릭하고 특수 폴더 인 사용자 정의 폴더를 추가하십시오. 폴더의 속성 창에서 [LocalAppDataFolder]를 DefaultLocation에 넣습니다. 그러면 파일이 추가됩니다. DIRCA_ 사용자 정의 작업을 사용하지 마십시오.

필수 구성 요소 버튼을 선택 취소하면 MSI 파일 만 생기고 설치할 수 있습니다. 선행 조건이있는 경우 setup.exe 부트 스트 래퍼가 필요하며 MSI를 설치하면 설치됩니다.

Orca에서보기 요약 정보를 사용하여 UAC 프롬프트를 끄고 UAC 준수 확인란을 선택하십시오. Windows Installer는 설치이기 때문에 시스템 보안 규칙을 위반하지 않으므로 제한된 사용자에게 허용되지 않는 작업을 설치 프로그램이 시도하면 실패합니다.