Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 39 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
39
Dung lượng
2,63 MB
Nội dung
ĐónggóiứngdụngbằngVisualStudio2005
Phần 1:
1. Giới thiệu:
- Có một thời trước đây , đa số máy tính người dùng có một thời kỳ khủng hoảng trong việc cài đặt ứng
dụng Windows . Ví dụ , khi bạn cài đặt 1 version mới của 1 ứngdụng nào đó hay 1 ứngdụng không liên
quan gì tới 1 ứngdụng đã cài trong máy của bạn , quá trình cài đặt sẽ copy version của dlls vào thư mục
hệ thống và thay đổi thiết lập trong registry . Quá trình cài đặt này có thể gây nguy hiểm ứngdụng khác
trong cùng máy client đó , đặc biệt nếu tồn tại 1 ứngdụng đang dùng chung với các componient . Nếu
các componient đó tương thích lùi với các phiên bản trước , that’s okei , nhưng đa số trường hợp nó
không có khả năng tương thích lùi với các phiên bản cũ hơn . Thì lúc đó bạn buộc phải nâng cấp các phần
mềm khác , hoặc tệ hơn là không dùng được nữa . Vấn đề khó chịu đó được gọi là DLL Hell
- Nói thêm về cơn ác mộng DLL . Giả sử kịch bản sau : bạn cài đặt ứngdụng A của trên máy của bạn , nạp
một số DLL của Windows . Nó hoạt động ngon lành trong nhiều năm . Sau đó bạn cài đặt ứngdụng B
cũng trên máy của bạn và thình lình không chờ đợi , ứngdụng A “sụm bà chè” không nói không rằng .
Mà ứngdụng B không dính dạng ứngdụng A . Việc gì xảy ra ? Cuối cùng bạn phát hiện ra là : ứngdụng B
đã thay thế một số DLL mà ứngdụng A cần đến , và thình lình ứngdụng A bằt đầu lảo đảo và bất động .
- Theo nguyên tắc , DLL phải tương thích lùi (backward-comatible) . Vì DLL mới được thêm vào máy , thì
ứng dụng cũ xưa thình lình được kết nối với 1 DLL không tương thích với những gì ứngdụng chờ đợi và
thế là xong đời . Hiện tượng này khiến cho khách hàng windows phải nâng cấp chương trình hiện hữu và
cũng là 1 trong những lý do bảo rằng các máy sử dụng Windows b
ất ổn . Với assembly của .NET thì cơn
ác mộng sẽ biến mất .
- Bạn muốn triển khai ứngdụng của bạn bằng một chương trình cài đặt có thể chép file thực thi , tạo
shorcut , thêm các thiết lập Registry … Có nhiều chương trình phục vụ cho việc đónggói phần mềm trở
nên dễ dàng hơn bao giờ hết , ví dụ như : WiseInstall for .net, InstallShield, InstallAnywhere for .net ,
Nsis …
- Hôm nay mình sẽ giới thiệu 1 công cụ hỗ trọ đónggói phần mềm đó là Microsoft VisualStudio2005 .
- Với mô hình triển khai “zero-touch” của .NET , bạn có thể chép file ứngdụng đã được biên dịch sang
bất kỳ máy tính nào khác mà không phải đăng ký các thành phần này hay chỉnh sửa các Registry . Tuy
nhiên , hầu hết các ứngdụng chuyên nghiệp đều đòi hỏi có 1 chương trình cài đặt tự động để chép các
file vào vị trí thích hợp và thêm các shortcut của ứngdụng vào Start Menu hay với nhiều cấu hình tự
động khác nữa . Microsoft VisualStudio .NET cho phép xây dựng kiểu chương trình cài đặt như thế với
một dự án cài đặt hay người ta gọi là (Setup Project)
- Setup Project là 1 kiểu Project đặc biệt trong VisualStudio .NET . Khác với kiểu Project khác , nó thuộc
dạng không đặc thù ngôn ngữ . Thay vì viết mã kịch bản cài đặt , bạn cấu hình tùy chọn cài đặt thông qua
GUI . Sau đó Project này được biên dịch thành 1 ứngdụng cài đặt Windows Installer (file .msi)
Các tính năng mà công cụ đónggói của VS.net hổ trợ :
- Chương trình tự động phát sinh cùng lúc cả Install và Uninstall lúc Compile
- Tạo Shortcut
- Cho phép tạo chương trình Install gồm nhiều đồ án, nhiều chương trình thực thi và nhiều thư viện
- Tùy chọn đường dẫn cài đặt
- Kiểm soát được tình huống cài đặt :
o Cài đặt lần đầu
o Remove
o Repair
o Khi chương trình đã được cài đặt thì lần tiếp theo xuất hiện hộp thoại cho chúng ta lựa chọn Repair
hoặc Remove
- … v…v
VS.net hỗ trợ 6 kiểu tạo file setup như sau:
1. Setup Project : tạo bộ đónggói cho ứngdụng Windows (hay còn gói là ứngdụng chạy trên Desktop).
2. Merge Module Project : Tạo ra file .msm , đónggói các components cho phép bạn chia sẽ các
components đó giữa nhiều Project hoặc nhiều ứng dụng.
3. CAB Project : Cho phép bạn tạo 1 file .cab để nén ActiveX controls chứ không phải những ứng dụng,
tuy nhiên có thể được download từ Web server tới trình duyệt web
4. Web Setup Project : Cho phép bạn triển khai 1 ứngdụng Web tới web server. Bạn tạo 1 Web Setup
project, build nó tạo ra file đónggói , copy file đó tới Web Server, và chạy file đó để cài đặt ứngdụng
này trên server, sử dụng những Setting định nghĩa Web Setup project của bạn.
5. Smart Device CAB Project : tạo Cab project để cài đặt trên ứngdụng trên thiết bị di động.
6. Setup Wizard : nếu bạn không rõ mình dùng loại đónggói nào thì dùng lựa chọn này để dùng trình
thuật sỹ Wizard sẽ hướng dẫn chúng ta đi từng bước trong suốt quá trình tạo file đónggói . Áp dụng cho
mọi loại ứngdụng , kể cả ứngdụng Web.
Chúng ta xét 2 hổ trợ đó là Setup Wizard và Setup Project . Thực ra chỉ cần tìm hiểu Setup Wizard là đủ
vì Setup Wizard đã có bao hàm Setup Project.
2. Một số thuật ngữ trong bài viết
Một số thuật ngữ chỉ có áp dụng trong nội dung bài hướng dẫn này thôi , ngoài phạm vi bài này, ý nghĩa
của các từ có thể khác nhi
ều đi .
Target Machine = Target Computer = Client: máy tính của khách hàng chạy file setup do bạn tạo ra.
Application : chương trình do bạn viết ra và muốn đónggói lại .
Setup : là 1 ứngdụng hay quá trình cho phép bạn đónggóiứngdụng của bạn thành 1 định dạng easy-to-
deploy , với định dạng easy-to-deploy bạn có thể dễ dàng install ứngdụng vào máy client .
Deploy : triển khai chương trình tới máy client.
Deployment : là quá trình đem ứngdụng của bạn và install nó vào máy khác , đa số dùng thêm 1 ứng
dụng setup khác.
Project : là Project mình muốn đónggói lại
Setup Project : là Project mình đang thao tác , cấu hình project để tạo file setup.
Setup File : là file kết quả tạo ra khi build Setup Project , file này để cài đặt trên Target Computer.
Windows Installer :
3. Tìm hiểu cơ chế đánh phiên bản của .NET
Như bạn đã biết , .NET Runtime không buồn kiểm tra phiên bản đối với private assembly . Nhưng khi
“chơi” với shared assembly thì vấn đề phiên bản lại trở thành quan trọng , bây giờ ta tìm hiểu cơ chế
đánh số phiên bản (gọi là versioning ) và kiểm tra đối với shared assembly .
Trên .NET các shared assembly được nhận diện được nhận diện duy nhất thông qua tên và version . GAC
(Global Assembly Cache ) cho phép các phiên bản khác sống side-by-side , nghĩa là phiên bản cũ vẫn hiện
diện cùng với phiên bản mới . Như vậy các ứngdụng có thể dùng bất cứ phiên bản nào mà nó thích , tuỳ
thuộc ứngdụng đó , cũ cũng có , mới cũng có sẵn .
Một con số đánh dấu version của 1 assembly trong giống như sau : 1:0:2204:21 , nghĩa là 4 con số phân
cách bởi dấu ‘:’ . 2 số đầu (1:0) được gọi là major và minor . Con số thứ 3 là số build và con số thứ 4 là số
revision (số chỉnh sửa duyệt lại) .
Khi 2 assemply có số major và minor khác nhau thì được xem là không tương thích (incompatible) . Khi
các assembly khác nhau số Major và minor , thì bạn có thể chắc chắn là có nhiều thay đổi đánh kể (như
đổi tên các hàm hành sự , kiểu dữ liệu , kiểu thông số bị thay đổi , v.v… Do đó , nếu ứngdụng client yêu
cầu gắn kết với phiên bản 2.5 nhưng GAC chỉ có phiên bản 2.0 thì yêu cầu gắn kết thất bại (trừ khi bản
chỉnh sửa tập tin cấu hình của ứng dụng) .
Khi 2 version cùng số major và minor nhưng lại có số build khác nhu thì .NET Runtime giả định chúng có
thể tương thích với nhau (tương thích nhưng không bảo đảm lắm) . Cuối cùng nếu 3 số đầu giống nhau,
chỉ khách số revision (còn gọi là QFE Quick Fix Engineering) thì được xem là hoàn toàn tương thích .
Số QFE dành cho những lần sửa chữa bug . Nếu bạn sửa 1bug và cho biết là DLL của bạn hoàn toàn
tương thích đối với phiên bản hiện hữu , thì bạn phải tăng con số
revision . Khi 1 ứngdụng nạp 1
assemply , thì nó cho biết version major và minor muốn nạp , và AssemblyResolver sẽ tìm ra con số build
và revision cao nhất .
4. Cách 1 : Các bước tạo một chương trình setup bằng Setup Wizard
B1. Trong Solution Explorer của VS.net , right click vào Solution.
Trong menu popup, vào mục Add –> New project . Xuất hiện hộp thoại Add new project. (H1 và H2)
Hình 1
Trong hộp thoại Add new project:
Hình 2
B2.
- Bên trái là Project Types: Chọn Other Project Types –> Setup and Deployment
- Bên phải là Templates: Chọn Setup Wizard.
Đặt tên Project mới vào trường name
Chọn đường dẫn cần lưu thư mục tại trường Location
Sau khi click Ok, VS.net sẽ tự động hiển thị hộp thoại là Setup Wizard (1 of 5). Click chọn Next (H3)
Hình 3
Hình 4
B3. Hộp thoại thứ 2 là Setup Wizard (2 of 5) xuất hiện . (H4)
Hộp thoại này cho phép chọn kiểu Project
Trong trường hợp này chúng ta giả sử đónggóiứngdụng Windows nên đánh dấu check vào radio
button : Create a setup for a Windows application.
Còn nếu là ứngdụng Web thì ta chọn radio button : Create a setup for a web application.
Next tiếp :
Hình 5
B4. Hộp thoại thứ 3 là Setup Wizard (3 of 5) xuất hiện . (H5)
Hộp thoại này chứa các loại output mà chúng ta có thể đưa vào file Setup
XXX là tên project cần đónggói .
Localized resources from XXX :
XML Serialization Assemblies from XXX :
Content Files from XXX : chứa toàn bộ file chứa trong project XXX , cái này không cần thiết phải chọn.
Primary output from XXX : chứa file exe và file dll của prject XXX , cái này tất nhiên phải chọn rồi.
Source files from XXX : chứa file source code của project cần đónggói như file css , vb , cpp …
Debug Symbols from XXX
Documentation Files XXX : (tài liệu XML của dự án, cái này liên quan đến các commnets viết theo qui tắc
convention của .Net) . Có thể đưa vào hoặc không.
Built Output from …: tạo ra file MSI
Primary Output (chứa các DLL và EXE do Project phía trên tạo ra) – đương nhiên phải đưa vào
Bạn muốn biết thêm thông tin thì có thể xem Description ở bên dưới của hộp thoại đó.
Sau khi chọn xong nhấn Next.
B5. Hộp thoại thứ 4 là Setup Wizard (4 of 5) xuất hiện (xem H6)
Hình 6
Hộp thoại cho phép chọn file đính kèm theo như file Help , ReadMe …
Nếu muốn thêm file nào thì chọn Add à chọn đường dẫn của file đó. Nếu không thì chọn Next.
B6. Hộp thoại thứ 5 xuất hiện Setup wizard (5 of 5) thông báo tóm tắt nội dung kết quả. (xem H8)
Hình 7
B7. Chọn Finish để kết thúc quá trình tạo file cài đặt .
B8. Sau khi nhấn nút Finish trong Wizard cuối cùng thì màn hình (xem H8) hiện ra.
Hình 8: File System Designer
Trong Solution Explorer xuất hiện thêm Project , người ta gọi là Setup Project .
Tới đây có thể tạm thời gọi là xong , nhưng chúng ta phải qua một số bước cấu hình để tạo ra file setup
đóng gói phần mềm theo ý mình .
5. Cách 2 : Các bước tạo chương trình với setup bằng Setup Project
1. Mở Solution Explorer của VS.net ra, right click vào Solution.
Trong menu thả ra, vào mục Add à New project –> Xuất hiện hộp thoại Add new project (H9).
Hình 9
2. Trong hộp thoại Add new project (H10):
[...]... thể vừa làm cách thủ công hay viết IIS scripts để áp dụng cài đặt vào thư mục Web Nếu bạn dùngVisualStudio NET Copy Project , 1 virtual directory mới được tạo tự động cho bạn trên Web server Tuy nhiên , thông số IIS settings sẽ là thông số mặc định của máy chủ web Trở lại vấn đề, bạn có thể cấu hình thông số IIS một cách độc lậo Nếu gói ứngdụng ASP.NET của bạn trong Windows installer Web setup... : tùy chọn này cho phép bạn kiểm tra sự có mặt của ứng dụng cụ thể nào đó như IIS (Internet Information Server), NET Framework …trên máy client Hình 25 Bảng sau liệt kê danh sách launch condition có thể bạn cấu hình thông qua Launch conditions editor Bạn dùng Lauch Condition có tác dụng là kiểm tra một số điều kiên phải thỏa trước khi install ứng dụng Các điều kiện kiểm tra thường là tìm file , tìm... setup từ thư mục của ứngdụng Do đó khi chọn tuỳ chọn này , nó sẽ copy các gói component cần thiết từ máy chủ vào output của Setup Project o Download Prerequisites from the following location : chỉ định component được install từ thưc mục do bạn tự chọn Nhấn nút Browse vào thư mục cài đặt - C3 : Bạn có thể tạo một bootstrapper setup để cài đặt NET Framework và rồi cài đặt ứngdụng một cách tự động... Module Khai báo các Merge Module cho trình cài đặt: trên Solution Explorer, nhấn phải chuột trên project cài đặt -> Add -> Merge Module Nếu trong ứngdụng có sử dụng các thành phần không có trong Net FrameWork, phải chọn và đưa vào trình cài đặt - Ví dụ ứng dụng có báo biểu Crystal Report là chương trình độc lập với Net FrameWork, cần phải đưa các Merge Module sau vào trình cài đặt: a Crystal_managed2003.msm... setup chương trình của mình Hầu hết các thông tin thiết lập này đều là mô tả được sử dụng trong Setup Wizard hay trong cửa sổ Add/Remove Programs 3.1 Deploy IIS Settings Một điều quan trọng khi bạn triển khai ứng dụng web ASP.NET là làm thế nào cấu hình một số thông số trong IIS Nếu chọn cách triển khai ứng web bằng cách copy như lệnh XCOPY , Windows Explorer, hay FTP , thì không thể cấu hình thông... chưa gói mà phải Build nhưng đừng Build vội Có những thứ không tự động thêm vào Setup thì chúng ta phải dùng Child Window File System để thêm Chúng ta có thể tạo thêm các thư mục, Shortcut, đưa các file từ Source Machine đến Target Machine,… vv Phần 2: 1 Các loại Setup Editors Khi bạn triển khai 1 ứngdụng , bạn muốn thực hiện 1 thao tác đặc biệt nào đó như thay đổi cấu trúc thư mục của ứngdụng trên... file source code của project cần đónggói như file css , vb , cpp … Documentation Files : (tài liệu XML của dự án, cái này liên quan đến các commnets viết theo qui tắc convention của Net) Có thể đưa vào hoặc không XML Serialization Assemblies : Các thứ khác thì có thể xem Description của hộp thoại đó Khi chọn xong những Project và ouput cần đưa vào Setup Project thì VS sẽ gói tất cả vào và khi cài đặt... Registry Search c Add Windows Installer 3 Click chuột phải vào Laun Conditions à Add Launch Conditions Tìm thêm thông tin trong MSDN : Deployment in VisualStudio Launch Condition Management in Deployment URL : ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.en/dv_deploy/html/9927d5e4-11ab4819-9c7d-7e5e9d3cf555.htm 1.5.1 Searching the system during the install Trong Cửa sổ Launch Conditions có... vào trình cài đặt (nếu sử dụng CSDL Access) bằng cách nhấn phải chuột trên biểu tượng Application Folder -> Add -> File … Chọn tập tin mdb cần thiết (H16) - Tương tự như vậy ta có thể sắp xếp các file sau khi cài đặt vào các thư mục mong muốn , bằng các tạo các thư mục con trong Application Folder rồi kéo các file trong thư mục con Application Folder vào thư mục con tương ứng Hình 15 : Insert file... dùng bởi ứngdụng của bạn vào thư mục Global Assembly Cache Để làm điều này , bạn mở File System Editor bằng cách chọn menu View ->Editor ->File System Editor Sau đó , click chuột phải vào folder File System và chọn Add Special Folder -> Global Assembly Cache Folder Khi đó sẽ xuất hiện thư mục con của File System Bây giờ bạn có thể add assembly của bạn vào Global Assembly Cache folder Bằng cách . Đóng gói ứng dụng bằng Visual Studio 2005 Phần 1: 1. Giới thiệu: - Có một thời trước đây , đa số máy tính người dùng có một thời kỳ khủng hoảng trong việc cài đặt ứng dụng Windows. muốn đóng gói lại . Setup : là 1 ứng dụng hay quá trình cho phép bạn đóng gói ứng dụng của bạn thành 1 định dạng easy-to- deploy , với định dạng easy-to-deploy bạn có thể dễ dàng install ứng dụng. sau: 1. Setup Project : tạo bộ đóng gói cho ứng dụng Windows (hay còn gói là ứng dụng chạy trên Desktop). 2. Merge Module Project : Tạo ra file .msm , đóng gói các components cho phép bạn chia