Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 20

Đóng gói phần mềm với Advantaged Installer

MỤC LỤC
1. Tạo app winform............................................................................................2
1.1 Tạo giao diện..............................................................................................2
1.2. Tạo Kết nối đến SQL server.........................................................................3
1.2. Chương trình cho App..................................................................................5
2. Đóng gói sản phẩm..............................................................................................5
2.2. Cài đặt các ứng dụng đi kèm......................................................................10
2.3. Tạo SQL Query để tạo database khi tiến hành cài đặt ứng dụng................13
3. Chạy demo project............................................................................................17

1
Ta sẽ tiến hành tạo 1 app là một cửa sổ đăng nhập với tài khoản và mật khẩu được
lưu trong cơ sở dữ liệu. App này sẽ được tạo trên Visual Studio
1. Tạo app winform

1.1 Tạo giao diện


Ta sẽ tạo một cửa sổ winform dùng để đăng nhập như sau

Nếu người dùng nhập vào tài khoản và mật khẩu đúng với dữ liệu được lưu trong
database sẽ có thông báo là “ Đăng nhập thành công” và ngược lại thì sẽ là “Đăng nhập
thất bại”
Tuy nhiên ban đầu nếu kết nối đến database không thành công thì dù có nhập đúng
dữ liệu sẽ báo về là “ Lỗi kết nối “
1.2. Tạo Kết nối đến SQL server
Trong bài thực hành này ta sẽ tạo 1 object của class SqlConnection và cung cấp 1
chuỗi ký tự cho thuộc tích ConnectionString của nó. SqlConnection là class hỗ trợ kết nối
đến cơ sở dữ liệu của Sql server. connectionString là thuộc tính chứa tham số dành có
việc kết nối này
"Data Source=(localdb)\v11.0;AttachDbFilename=" + path + @"\" + databaseName +
";Integrated Security=True"
Hoặc
Data Source=(localdb)\v11.0;Initial Catalog = +name_database ";Integrated
Security=True"

Trong đó:
 DataSource là tên Server
 AttachDBFileName là đường dẫn đến file database dưới dạng đuôi .mdf
 Initial Catalog là tên database
2
Các phương thức open và close của lớp SqlConnection dùng để mở và đóng
kết nối

SqlConnection StringKetNoi = new SqlConnection(@"Data Source=(localdb)\v11.0;Initial


Catalog = +name_database ";Integrated Security=True");

StringKetNoi.open();

Với đoạn code trên ta đã có thể kết nối vào SQL server, tuy nhiên nếu chỉ viết
trong hardcode như này thì lại bất tiện cho việc đóng gói ứng dụng. Vì khi chuyển
sang máy khác ta không thể mở ứng dụng ra để cài lại được. VÌ vậy, ta sẽ sử dụng file
cấu hình để lưu trữ và truy xuất connectionString
Mỗi project khi tạo ra se chứa sẵn 1 file XML chứa thông tin cấu hình
(App.config). Đây là file xml sẽ được copy vào thư mục của ứng dụng khi cài đặt.
Thông tin cấu hình ở đây có thể truy xuất khi chạy ứng dụng dưới dạng notepad

Để sử dụng App.config và connectionstring ta làm như sau


Thay đổi file App.config bằng cách thêm <connectionStrings> xanh lá vào
như dưới đây
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup>
<connectionStrings>
<add name="my connection string" connectionString="Data Source=localhost\
SQLEXPRESS1;Initial Catalog =du_lieu;Integrated Security=True"/>
</connectionStrings>
</configuration>

Sau đó tham chiếu đến thư viện System.Configuration

3
Cuối cùng truy xuất chuỗi liên kết từ C# như sau:
var StringKetNoi =
System.Configuration.ConfigurationManager.ConnectionStrings["my connection
string"].ConnectionString;
SqlConnection CoSoDulieu = new SqlConnection(StringKetNoi);

1.2. Chương trình cho App


Sau đây là chương trình cho app đăng nhập:
2. private void button1_Click(object sender, EventArgs e)
3. {
4. //string path = Path.GetFullPath(Environment.CurrentDirectory);
5. //string databaseName = "SinhVien4.mdf";
6. //SqlConnection quan = new SqlConnection(@"Data Source=(localdb)\
v11.0;AttachDbFilename=" + path + @"\" + databaseName + ";Integrated
Security=True");
7. var StringKetNoi =
System.Configuration.ConfigurationManager.ConnectionStrings["my connection
string"].ConnectionString;
8. SqlConnection CoSoDulieu = new SqlConnection(StringKetNoi);
9.
10. try
11. {
12. CoSoDulieu.Open();
13. string tk = textBox1.Text;

4
14. string mk = textBox2.Text;
15. string sql = "select *from Table_1 where TaiKhoan= '" + tk + "'
and Matkhau= '" + mk + "'";
16. SqlCommand cmd = new SqlCommand(sql, CoSoDulieu);
17. SqlDataReader data = cmd.ExecuteReader();
18. if (data.Read() == true)
19. {
20. MessageBox.Show("Đăng nhập thành công!");
21. }
22. else
23. {
24. MessageBox.Show("Đăng nhập thất bại!");
25. }
26. }
27. catch (Exception ex)
28. {
29. MessageBox.Show("Lỗi Kết Nối");
30. }
31. }
32.
33. private void button2_Click(object sender, EventArgs e)
34. {
35. Close();
36. }

2. Đóng gói sản phẩm

Advanced Installer là một tiện ích Windows được thiết kế để giúp bạn xây dựng các
gói Windows Installer trong một môi trường làm việc sạch sẽ và trực quan.
Mặc dù nó có nhiều tham số dành riêng nhưng giao diện người dùng rất đơn giản và cho người dùng
khả năng tạo dự án mới bằng cách chọn loại, cụ thể là trình cài đặt (ví dụ: ứng dụng Visual Studio hoặc .NET,
gói 32/64-bit hỗn hợp), Java , cập nhật, bổ trợ, thiết bị di động và các thứ khác.
Link tải advanced installer
https://taiwebs.com/windows/download-advanced-installer-128.html
Mở phần mềm lên chọn Template theo dạng Visual Studio Application để chọn
2.1. Chọn project được đóng gói

5
Sau khi kích chọn thì điền các mục thông tin APP như tên sản phẩm, tên công ty

Chọn dạng cài theo kiểu MSI setup file để có thể thêm ứng dụng vào cùng

6
TIếp tục ấn next, đến khi cửa sổ này hiện ra , kích vào ký hiệu … để chọn app cần
đóng gói

Sau khi đã chọn App tiếp tục ấn NEXT

7
Select all để đính kèm theo các thư viện dll được sử dụng trong App

8
Nếu các mục sau đó để theo default thì có thể tiếp tục ấn next đến khi hiện ra cửa
sổ này thì chọn finish,

9
2.2. Cài đặt các ứng dụng đi kèm
Ta quay trở lại phần cài đặt cho cả Project, gồm các mục

Chọn Customize để cài thêm thuộc tính cho project

Trong project này ta đang cần thêm 2 thứ đó là cài thêm file cài ứng dụng SQL
server express đi kèm để có thể sử dụng được database khi project được cài trên một máy
10
client khác chưa có SQL server. Thứ 2 là ta cần thêm chức năng tự động khởi tạo
database khi ứng dụng được cài xuống
TÌm đến phần Requirements và kích chọn Prerequisites

Trong phần server chọn SQL Databases

Cuối cùng thì chọn apply để hoàn xác nhận đồng ý thêm
Đầu tiên ta chọn đến phần Presequisites kích chọn để cài đính kèm file SQL
Server Express 2019 vào

Trong Pre-install sẽ chứa phần file cài SQL Server Express 2019
11
Tiếp theo vào phần SQL Database để tạo hoặc đính kèm file database
Trong mục Database server chọn Predefined Connection để tạo kết nối cho
database

12
2.3. Tạo SQL Query để tạo database khi tiến hành cài đặt ứng dụng

Trong phần cài đặt ta cần lưu ý cấu hình 1 số thông tin như sau
 Phần General mục Server :cần thêm tên của server ta cần kết nối đến
 Phần Authentication : tích vào Trusted Connnection
 Phần Catalogue mục Database : master
 Các thông tin còn tại có thể để default hoặc thay đổi theo yêu cầu của project

13
Tạo database bằng script với lệnh
CREATE DATABASE du_lieu

Sau đó tạo file Script để tạo cài đặt cho database hoặc có thể thêm Database có sẵn
bằng các add file script tạo từ trước vào
Thêm các script sau để tạo bảng trong database
USE [du_lieu]
GO
/****** Object: Table [dbo].[Table_1] Script Date: 6/22/2020 10:58:27 PM
******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Table_1](
[TaiKhoan] [nchar](20) NULL,
[MatKhau] [nchar](20) NULL
) ON [PRIMARY]
GO

14
INSERT [dbo].[Table_1] ([TaiKhoan], [MatKhau]) VALUES (N'temas ',
N'duongkhue ')
GO
INSERT [dbo].[Table_1] ([TaiKhoan], [MatKhau]) VALUES (N'temas1
', N'duongkhue1 ')
GO
INSERT [dbo].[Table_1] ([TaiKhoan], [MatKhau]) VALUES (N'22597
', N'22597 ')
GO
INSERT [dbo].[Table_1] ([TaiKhoan], [MatKhau]) VALUES (N'temas2
', N'duongkhue2 ')
GO
USE [master]
GO
ALTER DATABASE [du_lieu] SET READ_WRITE
GO
Như vật ta có bảng dữ liệu sau :

Tài Mật khẩu


khoản

temas duongkhue

temas duongkhue1
1

22597 22597

temas duongkhue2
2

Trong Mục Execution , Run tích dấu V vào phần at install để bảng được tạo đồng
thời khi cài đặt xuống ứng dụng

15
ở Script_1 là file script dùng để xóa database , ta đưa vào dòng code như dưới để
xóa database và chọn at unistall, tức là xóa khi ứng dụng bị gỡ bỏ

Cuối cùng ta sẽ chọn Run để hoàn tất việc đóng gói

16
 Lưu ý : Trong quá trình cài đặt SQL server Express 2019 ta cần đặt tên cho server
đúng với tên đã đặt trong phần lập trình
ở project này tên của server là : SQLEXPRESS1
3. Chạy demo project

Sau khi hoàn tất việc cài đặt project, ta mở app lên và chạy thử nghiệm , nhấp vào
biểu tượng sau để mở dự án.

Nhập tài khoản và mật khẩu như trong bảng, ta sẽ thấy messageBox thông báo
đăng nhập thành công như hình

17
Nếu nhập tài khoản và mật khẩu chưa được lưu trong database , hoặc nhập sai 1
trong 2 , thì sẽ hiển thị như sau

18
Cuối cùng để kiểm tra database đã được tạo, ta có thể vào ứng dụng Microsoft
SQL Server Management Studio

Có thể thấy database mang tến du_lieu đã được tự động tạo nhờ phần cài đặt của
project này

19
20

You might also like