Windows 서비스를 설치하기 위해 InstallShield LE 프로젝트를 생성하려면 어떻게합니까?


104

어제 MSDN에 릴리스되었을 때 Visual Studio 2012를 다운로드했습니다. 2010 년에 우리가 가지고 있던 프로젝트 유형 중 일부가 사라지거나 다르다는 것을 알게되었습니다. 지금 저에게 가장 큰 차이점은 Windows Installer 프로젝트가 제거되었다는 것입니다. 이제 우리는 InstallShield LE (Limited Edition)를 사용해야합니다. 여기서 문제는 많은 Windows 서비스를 작성하고 InstallShield LE를 설정하는 방법을 볼 수 없다는 것입니다. 우리 회사는 프로페셔널 에디션 라이선스에 투자해야 할 것 같습니다.

InstallShield LE에서 서비스를 설치하는 방법을 찾은 사람이 있습니까? Windows Installer 프로젝트를 사용할 때 사용자 지정 작업을 설정하기 만하면됩니다.


1
Visual Studio 배포 프로젝트에서 InstallUtil 사용자 지정 작업을 사용하는 것은 실제로는 정말 좋지 않았습니다. 기본 저작 도구가 MSI의 기본 기능을 노출하지 않았기 때문에 기본적으로 취약한 솔루션으로 바퀴를 재창조하고 있습니다.
Christopher Painter

답변:


161

Visual Studio 2012 및 InstallShield LE의 경우 다음을 수행합니다.

  • InstallShield 프로젝트 어시스턴트를 실행하고 서비스의 기본 출력을 애플리케이션 파일 섹션에 추가하십시오.
  • 프로젝트 어시스턴트를 완료 한 후 설정 프로젝트의 2 단계 아래에있는 "파일"항목을 두 번 클릭하십시오.

파일 섹션

  • 서비스의 기본 출력을 마우스 오른쪽 버튼으로 클릭하고 속성으로 이동합니다.
  • "COM 및 .NET 설정"탭을 클릭하고 "설치자 클래스"확인란을 선택합니다. 여기에 이미지 설명 입력
  • 확인을 클릭하십시오.

이제 설치를 빌드하고 실행하면 Windows 서비스 스냅인에 서비스가 표시됩니다.

서비스 프로젝트에 "프로젝트 설치 프로그램"을 추가했다고 가정합니다 (서비스 디자인 시트를 마우스 오른쪽 단추로 클릭하고 "설치 프로그램 추가"를 클릭하십시오). Visual Studio 2012 / InstallShield LE를 사용하는 Windows 8에서이 작업을 확인할 수 있습니다.


좋아, 이것은 VS 2010 및 Win 7 Pro에서도 작동합니다. 아직 VS 2012에서 시도해 보지 않았지만 그래야합니다. 감사.
fizch 2011

3
사용자에게 데이터베이스 연결 문자열 (서버, 인증 및 데이터베이스 이름)을 묻는 대화 상자를 표시하고 InstallShield LE를 사용하여 Windows 서비스 구성 파일을 업데이트 할 수 있습니까?
Adelia Benalius

2
이것은 꽤 좋은 가이드입니다 : c-sharpcorner.com/uploadfile/cb88b2/… .
Jonty


1
이 옵션은 설치 후 서비스를 시작하지 않습니다. 서비스를 설치하고 시작하려면 솔루션 탐색기에서 3. Configure Target System> Services를 선택 합니다 .
Rajeev

24

최근 Install Shield LE와 함께 VS 2012를 설치했습니다. 처음에는 빌드 후 ISEXP -5036 내부 서버 오류가 계속 발생했습니다 (ISLE 프로젝트를 설정하고 Install Shield Project Assistant를 통해 실행 한 후). 결국 나는 그것이 실패한 DVD-5 미디어 유형으로 MSI를 만들려고한다는 것을 알게되었습니다. 어떤 이유로 처음부터 솔루션을 다시 만드는 것은 작동하는 CD_ROM 및 SingleImage 미디어 유형으로 만 빌드하는 것으로 인식합니다.

어쨌든 5036 오류를 수정하려면 VS 2012 (상단 메뉴)에서 빌드 탭을 클릭하고 구성 관리자를 선택하면 DVD-5 구성에서 IS 설정 파일이 선택되어 있는지 확인해야합니다. 이것을 CD_ROM으로 변경하고 닫기를 클릭하십시오. 빌드 / 다시 빌드하면 IS 5036 오류없이 완료됩니다.

여기에 이미지 설명 입력


2
이것은 그의 문제와 관련이 없을 수도 있지만 내 문제를 해결했습니다. 감사합니다! +1
David

처음부터 나에게 동일한 문제, 기본 설치에는 구성으로 DVD-5가 있었고 설정은 빌드하지 못했습니다. 귀하의 팁으로 단일 이미지로 변경하고 문제없이 구축했습니다!
Nick Bork 2014

DVD-5가 선택되었습니다. 단순하지만 멋진 대답
beaumondo

6

설치 프로그램 클래스 확인란을 사용하는 동안 일부 인스턴스에서 작동 할 수 있지만 다음 오류가 발생할 수 있습니다.

오류 1001. 지정한 서비스가 이미 있습니다.

이 문제를 해결하는 방법에 대한 이 링크 에서 발췌 한 내용은 다음과 같습니다 .

오류 : 오류 1001. 지정된 서비스가 이미 있습니다.

이 오류는 .NET 서비스를 설치하는 구성 요소가 ".NET Installer Class"를 예로 설정하여 잘못 구성된 경우 발생합니다. .NET 서비스를 설치하는 방법은 ".NET 설치 프로그램 클래스"설정이 아닌 Component \ Advanced Settings \ Services보기를 사용하는 것입니다. Component \ Advanced Settings \ Services보기에서 정의하면 Windows Installer ServiceControl 및 ServiceInstall 테이블에 항목이 생성됩니다. 이러한 항목은 Windows Installer "InstallServices"작업에서 서비스를 설치하는 데 사용됩니다.


당신이 도움이 설명 할 수 .... 구성 요소 \ 고급 설정 \ 서비스 "보기 ?? 찾을 수 있습니다
pithhelmet

설치 프로그램의 프리미어 에디션에 있습니다 (ffs! microsoft 왜 설치 프로젝트 유형을 선택 했습니까!) .. 프리미어 에디션이있는 경우. community.flexerasoftware.com/...
폴 허친슨에게

설치 프로젝트 이름의 길이와 관련이 있다는 것을 발견했습니다. 즉, 설치 프로젝트 이름을 "설치"또는 "설치"와 같은 더 짧은 이름으로 변경하십시오.
Jonty

4

프로젝트가 .NET이면 InstallShield LE와 함께 ServiceProcessInstaller 클래스를 사용할 수 있습니다.

InstallShield와 함께 작동하려면 InstallShield "파일"트리로 이동하여 파일을 마우스 오른쪽 버튼으로 클릭해야합니다. 그런 다음 "COM 및 .NET 설정"탭에서 "설치자 클래스"확인란을 선택합니다.

작동하도록했지만 Windows 2008R2와 같은 일부 OS에서 문제가 발생했습니다. 귀하의 마일리지가 다를 수 있습니다.

예 : http://www.codeproject.com/Articles/14353/Creating-a-Basic-Windows-Service-in-C


1
죄송합니다. 나는 오늘까지 이것을 보지 못했습니다. 내가 받아 들인 대답과 거의 같은 대답 인 것 같습니다. +1하겠습니다.
fizch

4

나는 이것에 모든 종류의 문제가 있었다.

다음과 같이.

  1. InstallShield는 다운로드하는 데 오랜 시간이 걸립니다
  2. 등록 과정은 고통 스럽습니다.
  3. 구성 옵션이 혼란스럽고 지나치게 복잡합니다.
  4. 이 스레드에서 허용되는 솔루션은 해킹이며 항상 작동하지는 않습니다. 문서의 1001을 참조하십시오. 기본적으로 Windows 서비스를 설치하기위한 올바른 구성 옵션을 얻으려면 페이 월을 통과해야합니다.

다른 곳에서 언급했듯이 나를위한 해결책은 InstallShield를 포기하는 것이 었습니다.

여기에 이미지 설명 입력

그 시점에서 매우 쉽습니다.

편집 : 업데이트-여기에서 최신 버전을 설치하십시오 https://wix.codeplex.com/releases/view/115492 for vs 2013/2015


3

Visual Studio 설치 프로젝트는 Visual Studio 확장으로 VS 2013에 다시 제공됩니다.

https://visualstudiogallery.msdn.microsoft.com/9abe329c-9bba-44a1-be59-0fbf6151054d

솔루션과 프로젝트를 VS 2013으로 업데이트하십시오. 아직 VS 2010을 사용 중이라면 VS 2013으로 직접 업그레이드하는 것이 좋습니다.

제가 설치 한 LE의 경험은 매우 기발하지만 일단 트릭을 알아 내면 사용하기가 더 쉽다는 것입니다. 그러나 한정판은 Microsoft와 Flexera가 모든 기능을 갖춘 버전을 판매하는 방법이라고 생각합니다. 다시 말해, 먼저 Microsoft는 Visual Studio에 대해 많은 돈을 지불하고 그 파트너 (범죄로 인해)는 설치자에게 더 많은 비용을 지불합니다. VS 2013에서 설정 프로젝트를 다시 가져와야했기 때문에 해결되지 않은 잘못된 전략.


2

이 주제에 대해 썼습니다.

Windows Installer XML을 사용하여 InstallShield 기능 보강-Windows 서비스

기본적으로 WiX를 사용하여 병합 모듈을 만들어 서비스를 캡슐화 한 다음 installshield 프로젝트에 추가합니다. (INSTALLDIR 디렉토리에 연결하여 파일이 예상 한 위치에 있는지 확인하십시오.) VM에서 빌드하고 테스트합니다. 케이크 조각.


배울 또 다른 기술? 어제까지 WIX에 대해 들어 본 적이 없었습니다. 나는 아직도 그것에 대해 아무것도 모른다. 몇 번의 클릭만으로이 모든 과정이 점점 어려워지는 것 같습니다.
fizch

몇 번의 클릭만으로 설치 프로그램 을 실행 합니다. 그것들을 작성하는 것은 항상 훨씬 더 많은 노력이었습니다.
Christopher Painter

또한 몇 번의 클릭만으로 설치 프로그램을 설정했습니다. 제목, 제조업체 등을 입력해야하지만 전체 xml 문서를 작성할 필요는 없습니다. WIX에 대해 설명해 주시겠습니까? 나는 당신이 그것에 대해 분명히 많이 알고 있다고 말할 수 있습니다. 뭔데? 어디서 구할 수 있습니까? 어떻게 사용하나요? 기타 ...
fizch

저는 16 년 동안 설치 프로그램을 작성해 왔으며 단일 EXE 및 바로 가기를 사용하는 간단한 설치 만 '몇 번의 클릭'으로 작성합니다. 어느 쪽이든 CodePlex에서 WiX를 찾을 수 있으며 주제에 대해 출판 된 책이 있습니다. 기본 기술은 Windows Installer이며 해당 설명서는 Platform SDK 및 MSDN에서 찾을 수 있습니다.
Christopher Painter

5
진지하게 "SDK에 주제에 대한 책이 ... 문서에 게시되어 있습니다". ?? Chris, 2010 솔루션을 2012로 마이그레이션하는 중이고 설치 / 설정으로 인해 중단됩니다. MS, 가지고 다시 VS 설치 / 설치 visualstudio.uservoice.com/forums/121579-visual-studio/...
JimSTAT

2

VS2012 및 Installshield LE Spring Edition을 사용하고 있습니다. Wix를 사용할 필요가 없었습니다.

"InstallUtilLib.dll과 함께 사용할 _isconfig.xml을 생성 할 수 없습니다"라는 오류가 발생하면 설치 프로젝트와 동일한 이름으로 설치 프로젝트 폴더 내에 폴더를 생성하십시오.

http://community.flexerasoftware.com/showthread.php?165929-Could-not-create-_isconfig-xml-for-use-with-InstallUtilLib-dll에 대한 크레딧


2

답변에 언급 된대로 설치 프로그램을 추가 할 위치를 찾는 데 몇 가지 문제가 있습니다. 그래서 여기에 방법이 있습니다.

Windows 서비스 프로젝트 내에서 서비스 클래스를 두 번 클릭합니다. "클래스에 구성 요소를 추가하려면 도구 상자에서 구성 요소를 끌어서 속성 창을 사용하여 속성을 설정합니다 ..."라는 텍스트가있는 빈 화면 링크를 제외한 아무 곳이나 마우스 오른쪽 단추로 클릭합니다. "설치 프로그램 추가"를 선택하십시오.

안녕


0

나중에 해당 설정의 업그레이드를 생성하려는 경우 위의 모든 설명이 도움이되지 않음을 명심하십시오. InstallShiled LE는 업그레이드 할 때 실행중인 서비스를 중지 할 수 없습니다. Window Service Installer-> BeforeInstall 이벤트에서도 수행 할 수 없습니다.


0

여기에 넣고 싶었습니다.

VS 2015에서이 작업을 수행 할 때 설치시 반복적으로 1001 오류가 발생했습니다.

이 페이지에 대한 답변은 최신 버전 (2012 년 이전 버전) 에서는 명시 적으로 설치 프로그램 클래스 옵션을 선택하지 않은 상태로 로두고 설치 프로그램 프로젝트의 3 단계 아래에있는 서비스 섹션에 Windows 서비스를 추가 했습니다.

사용자 지정 Windows 서비스를 설치할 때 오류 1001

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.