Làm cách nào để tạo dự án InstallShield LE để cài đặt dịch vụ windows?


104

Tôi đã tải xuống Visual Studio 2012 ngày hôm qua khi nó được phát hành trên MSDN. Tôi nhận thấy rằng một số loại dự án mà chúng tôi có trong năm 2010 đã biến mất hoặc khác. Sự khác biệt lớn nhất đối với tôi lúc này là việc loại bỏ dự án Windows Installer. Bây giờ chúng tôi buộc phải sử dụng InstallShield LE (Limited Edition). Vấn đề ở đây là tôi viết rất nhiều Dịch vụ Windows và tôi không thể thấy cách thiết lập InstallShield LE. Có vẻ như chúng tôi (công ty của tôi) sẽ phải đầu tư vào giấy phép cho phiên bản chuyên nghiệp.

Có ai đã tìm ra cách cài đặt dịch vụ trong InstallShield LE không? Khi sử dụng dự án Windows Installer, bạn chỉ cần đặt các hành động tùy chỉnh.


1
Sử dụng các hành động tùy chỉnh InstallUtil trong các dự án Triển khai Visual Studio thực sự là một phương pháp thực sự kém. Về cơ bản, nó đang phát minh lại bánh xe với một giải pháp mong manh vì công cụ tác giả cơ bản không tiết lộ các khả năng gốc của MSI.
Christopher Painter

Câu trả lời:


161

Đối với Visual Studio 2012 & InstallShield LE, hãy làm như sau:

  • Chạy qua trợ lý dự án InstallShield và thêm đầu ra chính của dịch vụ của bạn vào phần Tệp ứng dụng.
  • Sau khi bạn hoàn tất với trợ lý dự án, hãy nhấp đúp vào mục "Tệp" trong bước hai của dự án thiết lập.

Phần tệp

  • Nhấp chuột phải vào đầu ra chính của dịch vụ của bạn và chuyển đến thuộc tính.
  • Nhấp vào tab "Cài đặt COM và .NET" và đánh dấu vào hộp kiểm "Lớp trình cài đặt". nhập mô tả hình ảnh ở đây
  • Bấm Ok

Bây giờ, sau khi bạn xây dựng và chạy cài đặt của mình, dịch vụ của bạn sẽ hiển thị trong Windows Services snap in.

Lưu ý rằng điều này giả sử bạn đã thêm "Trình cài đặt dự án" vào dự án dịch vụ của mình (Nhấp chuột phải vào trang thiết kế dịch vụ và nhấp vào "thêm trình cài đặt"). Tôi có thể xác nhận công việc này trên Windows 8 bằng Visual Studio 2012 / InstallShield LE.


Ok, điều này cũng hoạt động trong VS 2010 và Win 7 Pro. Tôi vẫn chưa thử nó trong VS 2012, nhưng điều này sẽ làm được. Cảm ơn.
fizch

3
Có thể có hộp thoại hỏi người dùng về chuỗi kết nối cơ sở dữ liệu (Máy chủ, xác thực và tên cơ sở dữ liệu) và cập nhật tệp cấu hình dịch vụ windows bằng InstallShield LE không?
Adelia Benalius

2
Đây là một hướng dẫn khá hay: c-sharpcorner.com/uploadfile/cb88b2/… .
Jonty,

1
Dự án Trình cài đặt Visual Studio trong VS 2013. Tải xuống: visualstudiogallery.msdn.microsoft.com/… Giọng nói của người dùng: visualstudio.uservoice.com/forums/121579-visual-studio/… Tham khảo: blogs.msdn.com/b/visualstudio/archive /
2014/04/17

1
Tùy chọn này không khởi động dịch vụ sau khi cài đặt. Để cài đặt dịch vụ và khởi động nó, trong trình khám phá giải pháp, hãy chọn 3. Định cấu hình Hệ thống đích> Dịch vụ .
Rajeev

24

Gần đây tôi đã cài đặt VS 2012 với Install Shield LE. Lúc đầu, tôi liên tục gặp lỗi máy chủ nội bộ ISEXP -5036 sau khi xây dựng (đây là sau khi thiết lập dự án ISLE và chạy qua Install Shield Project Assistant). Cuối cùng, tôi phát hiện ra rằng nó đang cố gắng tạo MSI trong loại phương tiện DVD-5, nơi nó bị lỗi. Vì một số lý do, việc tạo lại giải pháp từ đầu bằng cách nào đó nhận biết chỉ xây dựng cho các loại phương tiện CD_ROM và SingleImage hoạt động.

Dù sao để khắc phục lỗi 5036, hãy nhấp vào tab Build trong VS 2012 (menu trên cùng), chọn trình quản lý cấu hình và bạn sẽ thấy rằng tệp thiết lập IS của bạn đã được chọn trên cấu hình DVD-5. Thay đổi điều này thành CD_ROM và nhấp vào đóng. Sau khi bạn xây dựng / xây dựng lại, nó sẽ hoàn tất mà không có lỗi IS 5036.

nhập mô tả hình ảnh ở đây


2
Điều này có thể không liên quan gì đến vấn đề của anh ấy, nhưng nó đã giải quyết được vấn đề của tôi. Cảm ơn bạn! +1
David

Vấn đề tương tự đối với tôi ngay từ đầu, cài đặt mặc định có DVD-5 làm cấu hình và thiết lập không thể xây dựng. Với mẹo của bạn, tôi đã thay đổi nó thành Single Image và được xây dựng mà không có vấn đề gì!
Nick Bork,

DVD-5 đã được chọn. Đơn giản nhưng lớn câu trả lời
beaumondo

6

Trong khi sử dụng hộp kiểm lớp trình cài đặt có thể hoạt động đối với một số trường hợp, bạn có thể gặp lỗi sau:

Lỗi 1001. Dịch vụ được chỉ định đã tồn tại

Đây là một đoạn trích từ liên kết này về cách giải quyết vấn đề này:

Đối với lỗi: Lỗi 1001. Dịch vụ được chỉ định đã tồn tại

Lỗi này sẽ xảy ra nếu thành phần cài đặt Dịch vụ .NET được định cấu hình không đúng với ".NET Installer Class" được đặt thành Có. Phương pháp để cài đặt Dịch vụ .NET là sử dụng dạng xem Thành phần \ Cài đặt nâng cao \ Dịch vụ, không phải cài đặt "Lớp trình cài đặt .NET". Tạo định nghĩa trong dạng xem Thành phần \ Cài đặt nâng cao \ Dịch vụ tạo các mục nhập trong Bảng ServiceControl và ServiceInstall của Windows Installer. Các mục nhập này được sử dụng bởi hành động "InstallServices" của Windows Installer để cài đặt Dịch vụ.


bạn có thể giúp đỡ và giải thích điều này .... Component \ Advanced Settings \ Services" xem có thể tìm thấy ??
pithhelmet

nó nằm trong phiên bản cao cấp nhất của trình cài đặt (ffs! microsoft tại sao bạn lại lấy ra loại dự án thiết lập!) .. Nếu bạn có phiên bản cao cấp nhất. Community.flexerasoftware.com/…
Paul Hutchinson

Tôi thấy rằng nó liên quan đến độ dài của tên dự án thiết lập tức là thay đổi tên dự án thiết lập của bạn thành một cái gì đó ngắn hơn như "Cài đặt" hoặc "Thiết lập".
Jonty,

4

Nếu dự án của bạn là .NET, hãy thử thì bạn có thể sử dụng lớp ServiceProcessInstaller với InstallShield LE.

Để làm cho nó hoạt động với InstallShield, bạn phải truy cập vào cây "tệp" InstallShield và nhấp chuột phải vào tệp của bạn. Sau đó chọn hộp kiểm cho "Lớp trình cài đặt" trên tab "Cài đặt COM và .NET".

Tôi đã làm cho nó hoạt động, nhưng tôi đã gặp sự cố trên một số hệ điều hành như Windows 2008R2. Số dặm của bạn có thể thay đổi.

Đây là một ví dụ: http://www.codeproject.com/Articles/14353/Creating-a-Basic-Windows-Service-in-C


1
Lấy làm tiếc. Tôi đã không nhìn thấy điều này cho đến ngày hôm nay. Có vẻ như nó khá giống câu trả lời mà tôi đã chấp nhận. Tôi sẽ +1 nó.
fizch

4

Tôi đã có tất cả các loại vấn đề với điều này.

Như sau.

  1. InstallShield mất nhiều thời gian để tải xuống
  2. quá trình đăng ký là một khó khăn.
  3. các tùy chọn cấu hình khó hiểu và quá phức tạp.
  4. giải pháp được chấp nhận trên chủ đề này là một cuộc tấn công và nó không phải lúc nào cũng hoạt động - hãy xem 1001 trong tài liệu - về cơ bản bạn cần phải vượt qua tường phí để có được các tùy chọn cấu hình phù hợp để cài đặt dịch vụ windows.

Giải pháp cho tôi như đã đề cập ở nơi khác - là từ bỏ InstallShield

nhập mô tả hình ảnh ở đây

Rất dễ dàng từ thời điểm đó.

Chỉnh sửa: Cập nhật - cài đặt phiên bản mới nhất từ ​​đây https://wix.codeplex.com/releases/view/115492 cho so với 2013/2015


3

Các dự án thiết lập Visual Studio đã trở lại VS 2013 dưới dạng một phần mở rộng studio trực quan.

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

Vui lòng cập nhật giải pháp và dự án của bạn lên VS 2013. Nếu bạn vẫn đang sử dụng VS 2010, tốt hơn hết là bạn nên nâng cấp trực tiếp lên VS 2013.

Kinh nghiệm của tôi với Installsheild LE là nó rất kỳ quặc nhưng một khi bạn tìm ra các thủ thuật, nó sẽ dễ sử dụng hơn. Tuy nhiên, tôi nghĩ rằng phiên bản giới hạn là một cách của Microsoft và Flexera để bán phiên bản đầy đủ tính năng. Nói cách khác, trước tiên, chúng tôi trả cho Microsoft rất nhiều tiền cho Visual Studio và sau đó là đối tác của họ (tội phạm) nhiều hơn cho Installsheild. Chiến lược tồi đã không thành công vì họ phải đưa các dự án thiết lập trở lại vào VS 2013.


2

Tôi đã viết về chủ đề này:

Tăng cường InstallShield bằng Windows Installer XML - Windows Services

Về cơ bản, bạn tạo một mô-đun hợp nhất bằng cách sử dụng WiX để đóng gói dịch vụ và sau đó thêm nó vào dự án installshield của bạn. (Đảm bảo liên kết với thư mục INSTALLDIR để đảm bảo tệp của bạn đi đúng nơi bạn mong đợi). Xây dựng và thử nghiệm trên máy ảo. Miếng bánh.


Một công nghệ khác để học? Cho đến ngày hôm qua, tôi chưa nghe nói về WIX. Tôi vẫn không biết bất cứ điều gì về nó. Có vẻ như toàn bộ quá trình này đang ngày càng trở nên khó khăn đối với một thứ mà trước đây chỉ cần một vài cú nhấp chuột.
fizch

Chỉ mất vài cú nhấp chuột để CHẠY trình cài đặt. Việc tạo ra chúng luôn phải nỗ lực hơn rất nhiều.
Christopher Painter

Nó cũng chỉ mất một vài cú nhấp chuột để thiết lập trình cài đặt. Bạn phải nhập tiêu đề, nhà sản xuất, v.v., nhưng bạn không cần phải tác giả toàn bộ tài liệu xml. Bạn có thể cho tôi biết gì về WIX? Tôi có thể nói rằng bạn rõ ràng biết rất nhiều về nó. Nó là gì? Tôi lấy nó ở đâu? Làm thế nào để tôi sử dụng nó? Vv ...
fizch

Tôi đã viết trình cài đặt trong 16 năm và chỉ cài đặt đơn giản với một EXE và phím tắt duy nhất đưa tôi đến tác giả 'chỉ vài cú nhấp chuột'. Dù thế nào bạn cũng có thể tìm thấy WiX trên CodePlex và có một cuốn sách được xuất bản về chủ đề này. Công nghệ cơ bản là Windows Installer và tài liệu đó có thể được tìm thấy trong SDK nền tảng và trên MSDN.
Christopher Painter

5
Nghiêm túc mà nói, "có một cuốn sách được xuất bản về chủ đề ... tài liệu trên SDK". ?? Chris, chúng tôi chỉ đang cố gắng chuyển các giải pháp 2010 của mình sang 2012 và việc cài đặt / thiết lập đang ngăn chúng tôi theo dõi. MS, mang lại VS Cài đặt / cài đặt visualstudio.uservoice.com/forums/121579-visual-studio/...
JimSTAT

2

Tôi đang sử dụng VS2012 và Installshield LE Spring Edition. Tôi không cần phải sử dụng Wix.

Nếu bạn gặp lỗi "Không thể tạo _isconfig.xml để sử dụng với InstallUtilLib.dll", hãy tạo một thư mục có cùng tên với dự án thiết lập của bạn và bên trong thư mục dự án thiết lập.

Tín dụng cho http://community.flexerasoftware.com/showthread.php?165929-Could-not-create-_isconfig-xml-for-use-with-InstallUtilLib-dll


2

Tôi chỉ gặp một số vấn đề khi tìm nơi thêm trình cài đặt như được đề cập trong câu trả lời. Vì vậy, đây là nó như thế nào.

Nhấp đúp vào lớp dịch vụ của bạn trong Dự án dịch vụ Windows của bạn Màn hình trống có dòng chữ "Để thêm các thành phần vào lớp của bạn, hãy kéo chúng từ Hộp công cụ và sử dụng cửa sổ Thuộc tính để đặt thuộc tính của chúng ..." Nhấp chuột phải vào bất kỳ đâu trừ các liên kết và chọn "Thêm trình cài đặt"

hẹn gặp lại sau


0

Hãy nhớ rằng tất cả các giải thích ở trên sẽ không giúp ích cho bạn nếu bạn định tạo bản nâng cấp của thiết lập đó sau này. InstallShiled LE không thể dừng dịch vụ đang chạy khi bạn nâng cấp. Bạn cũng không thể làm điều đó từ sự kiện Window Service Installer -> BeforeInstall.


0

Muốn đặt cái này ở đây;

Trên VS 2015, khi thực hiện việc này, tôi gặp lỗi 1001 khi cài đặt liên tục.

Câu trả lời trên trang này đã giải thích rằng trên các phiên bản mới hơn (bất cứ điều gì trong quá khứ năm 2012) , rõ ràng bạn cần phải rời khỏi một cách rõ ràng lớp cài đặt tùy chọn không được kiểm soát , và sau đó thêm dịch vụ cửa sổ của bạn dưới phần Dịch vụ theo Bước 3 của dự án trình cài đặt:

Lỗi 1001 khi cài đặt Dịch vụ Windows tùy chỉnh

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.