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

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

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



답변

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

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

파일 섹션

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

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

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


답변

최근 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 오류없이 완료됩니다.

여기에 이미지 설명 입력


답변

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

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

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

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

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


답변

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

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

여기에 이미지 설명 입력

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

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


답변

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에서 설정 프로젝트를 다시 가져와야했기 때문에 해결되지 않은 잘못된 전략.


답변

이 주제에 대해 썼습니다.

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

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