Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.



 
Trang ChínhTrang Chính  Tìm kiếmTìm kiếm  Latest imagesLatest images  Đăng kýĐăng ký  Đăng NhậpĐăng Nhập  

Lần truy cập trước của bạn:
Hôm nay: 19/5/2024, 21:30
Xem bài mới từ lần truy cập trước
Xem bài của bạn
Xem bài chưa có ai trả lời
 Share | 
ĐÓNG GÓI ỨNG DỤNG BẰNG Visual studio PHẦN 2Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down

nguoibantot192007

nguoibantot192007

ĐÓNG GÓI ỨNG DỤNG BẰNG Visual studio PHẦN 2 2-131010

https://da07tt.forumvi.com
.:.Thông tin.:.

Giới tính Giới Tính: Nam
NickName User: nguoibantot192007
Đến từ Đến từ : traÌ€ vinh
Age Age : 34
Posts Posts : 275
Join date Join date : 08/06/2009

Giới tính Giới tính : Nam
Age Age : 34
Birthday Birthday : 26/11/1989
Job/hobbies Job/hobbies : Sinh Viên
Đến từ Đến từ : traÌ€ vinh
Sở thich của bạn Sở thich của bạn : game,nghe nhaÌ£c
Posts Posts : 275
Points Points : 27277
Thanks Thanks : 10
Join date Join date : 08/06/2009
Pet Pet : 4 .Endeavor


ĐÓNG GÓI ỨNG DỤNG BẰNG Visual studio PHẦN 2 Empty30/4/2010, 23:34
Nguồn bài gửiNguồn: http://da07tt.forum-2007.com/t315-topic
Bài gửiTiêu đề: ĐÓNG GÓI ỨNG DỤNG BẰNG Visual studio PHẦN 2
Da07tt Community - Kết nối bạn bè 
------------------------------------------------------------------
1. CÁC LOẠI
SETUP EDITORS




Khi bạn triển khai 1 ứng dụ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 ứng dụng trên máy
client , thêm 1 số registry , và đặt một số điều kiệm kiểm tra đặc biết
nào đó , thay đổi GUI trong quá trình cài đặt . Với VS.NET bạn có thể
làm điều đó rất dễ dàng . VS.NET cung cấp một số editor sau :

  • File System
    Editor:
    editor này được dùng để add files vào gói cài đặt .
  • Registry Editor:
    editor này bạn có thể thêm một số key vào registry của máy client .
  • File Types
    Editor:
    editor này cho phép liên kết loại file nào đó tới ứng
    dụng của bạn
  • User Interface
    Editor:
    editor này cho phép bạn cấu hình một số GUI của dialog
    được show trong suốt quá trình cài đặt .
  • Custom action s
    Editor:
    với editor này , bạn tự chỉ định chương trình nào đó mà
    bạn muốn installer gọi khi install hay uninstall.
  • Launch condition s
    Editor:
    editor này cho phép bạn kiểm tra các yêu cầu tối thiểu
    cho ứng dụng của bạn install trên máy client .


Mục tiếp theo , bạn sẽ tìm hiểu sâu hơn về tất cả editor
trên .
1.1. FILE SYSTEM EDITOR



Nhìn cái tên là bạn biết editor này có chức năng gì ,
editor này cho phép bạn add vào Project Output những file như assemply ,
các file output vào thư mục xác định nào đó , bạn có thể xác định vị
trí nơi các file này sẽ được install tới máy client . File
System Editor
mở bằng cách sau :

- Click phải Project trong Solution
Explorer
, và chọn View à
File System
để hiện thị File System .
Tại đây bạn có thể chỉ định các file cài đặt . (H13)

- Trên cửa sổ File System
(mặc định đang được mở, nếu chưa có thể mở ra bằng cách nhấn phải chuột
trên project cài đặt -> View -> File System)

File System Editor cung cấp một số folder
đặc biệt được định nghĩa trước , mà bạn có thể add vào gói cài đặt của
bạn .Môt số folder quan trọng trong File System Editor
là:

  • Application
    Folder:
    Application Folder đại diện cho thư
    mục sau : [ProgramFilesFolder][Manufacturer][ProductName].
    Thư mục Manufacturer ProductName
    sẽ được chỉ định bằng cửa sổ Properties .
  • Global Assembly
    Cache Folder
    : Thư mục này cho phép bạn thêm các assembly được
    install dưới dạng shared assemblies trên máy client .
  • User’s Desktop:
    chỉ định các files sẽ xuất hiện trên Desktop người dùng . Vị trị mặc
    định thường là folder[DriveName]\Documents and
    Settings\[UserName]\Desktop
    , với UserName đại
    diện cho tên tài khoản của người dùng trên máy client.
  • User’s Program
    Menu:
    đường dẫn mặc định thường là [DriveName]\Documents
    and Settings\[UserName]\Start Menu\Programs
    , với UserName
    đại diện cho tên tài khoản của người dùng trên máy client.


VD :

- Tạo thêm thư mục Bin, Database (giả sửa có dùng
file CSDL Access) bằng cách nhấn phải chuột trên biểu tượng Application
Folder -> Add -> Folder
(xem H13).

ĐÓNG GÓI ỨNG DỤNG BẰNG Visual studio PHẦN 2 13

Hình 13: Add thư mục

- Kéo thả biểu tượng Primary output … trong thư
mục Application Folder vào thư mục Bin vừa
tạo. Tức là ta muốn các file EXE và file DLL(H14)

ĐÓNG GÓI ỨNG DỤNG BẰNG Visual studio PHẦN 2 14

Hình 14 : Add file

- Đưa tập tin .mdb 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ượngApplication
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.

ĐÓNG GÓI ỨNG DỤNG BẰNG Visual studio PHẦN 2 15

Hình 15 : Insert file database

Lưu ý : Ban đầu , File System Designer chỉ hiện
thị một số thư mục thường được sử dụng . Bạn có thể liên kết thêm các
thư mục bằng cách nhấp phải vào vùng trống và chọn Add Special Folder .
Có các tùy chọn ánh xạ đến thư mục Font , Favorites , Starup … của máy
tính , cho phép bạn cài đặt các file và các shortcut ở các vị trí khác
nhau .


Lưu ý : Khi các bạn sắp xếp các file ở các thư mục
khác nhau , sẽ ảnh hưởng tới đường dẫn tương đối của các file liên quan
đến nhau . VD như file CSDL , do đó bạn phải đảm bảo source code của
bạn thay đổi phù hợp đường dẫn đó .

1.1.1. Tạo shorcut



- Tạo shortcut cho chương trình: nhấn phải chuột
trên biểu tượng Primary output … -> Create Shortcut to Primary output
From … một shortcut được tạo ra trong cùng thư mục à đặt lại tên nếu
muốn à kéo biểu tượng này vào User’s Desktop, nếu muốn trên Desktop sẽ
có shortcut của chương trình, thực hiện tương tự cho shortcut trong
User’s Programs Menu (không dùng cho Web Application)

ĐÓNG GÓI ỨNG DỤNG BẰNG Visual studio PHẦN 2 17

Hình 16
1.1.2. Add Assembly vào GAC



- Giả sử bạn muốn add thêm 1 assembly độc lập
được dùng bởi ứng dụ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 click phải Global Assembly Cache folder
và chọn Add -> Assembly . Trong hộp thoại Component
Selector
, chọn assembly mà bạn muốn add vào . Sau khi add
xong thì lúc install nó sẽ copy assembly đó vào folder Global Assembly
Cache ở máy client .

ĐÓNG GÓI ỨNG DỤNG BẰNG Visual studio PHẦN 2 18

Hình 17
1.2. REGISTRY EDITOR



- Nhìn cái tên là bạn đã biết editor này làm gì ,
nó cho phép quản lý các giá trị các registry key của máy client . Mặc
định registry editor hiện thỉ các key chuẩn của Windows
registry như sau : HKEY_CLASSES_ROOT, HKEY_CURRENT_USER,
HKEY_LOCAL_MACHINE
, và HKEY_USERS

- Việc khi thêm hay thiết lập registry trong quá
trình cài đặt là việc làm thường xuyên “ở huyện” , hầu như 1 ứng dụng
nào đó đều ghi thêm “tí tẹo” nào đó để đánh dấu sự hiện diện của nó
trong máy client , ngay cả các thành phần portable cũng không thoát khỏi
ngoại lệ này .

- Click chuột phải vào Setup Project à
View
à Registry . Cửa sổ Registry On
Target Machine
hiện lên (H17).

ĐÓNG GÓI ỨNG DỤNG BẰNG Visual studio PHẦN 2 19

Hình 18

VD :

- Registry editor đại diện cho
cấu trúc của registry editor ở máy client . Vd , chúng
ta add 1 key nằm trong trong HKEY_LOCAL_MACHINE. Bằng
cách click phải vào nhánh HKEY_LOCAL_MACHINE , chọn New
Key
, và key con tên là Software. Cứ như thế
bạn có thể add các key phân cấp giống như hình sau :

ĐÓNG GÓI ỨNG DỤNG BẰNG Visual studio PHẦN 2 20

Hình 19

- Sau đó bạn install phần mềm tại máy client thì
cấu trúc phân nhánh key trong registry của máy client giống y chang
trong lúc bạn cấu hình bằng Registry Editor như
hình trên.



- Các thông tin thường tạo là [Tên công ty] ,
[version] v.v…
1.3. FILE TYPES EDITOR



- Mục đích : bạn muốn ứng dụng của bạn tự động mở
khi người dùng chọn kiểu file nào đó trong Windows Explorer.

- Bạn có thể đăng ký các kiểu file bằng cách chỉnh
sửa Registry bằng tay . Tuy nhiên cách đó rất nguy hiểm dễ gây hỏng
Windows nếu user không am hiểu rõ về registry . Có một cách hay hơn là
thực hiện các cấu hình này một lượt (lúc cài đặt) với các tính năng đi
cùng với Setup Project .

- 1 . Click phải chuột vào Setup Project
trong Solution Explorer và chọn View à File Types để hiện thị File
Type Designer (H14)

ĐÓNG GÓI ỨNG DỤNG BẰNG Visual studio PHẦN 2 21

Hình 20 : File Type Designer .

- 2. Click phải File Type Designer và chọn Add
File Type . Đối với mỗi kiểu file bạn phải chỉ định các thông tin sau :
PropertyPurpose
NameTên có phạm vi trong File types editor
để định danh 1 loại file đặc biết nào đó .
CommandChỉ định file exe nào được chạy khi người dùng mở file có đuôi ở
thuộc tính Extensions .
ExtensionsChỉ rõ đuôi mở rộng file với cách thực thi được đăng ký ở trên .
IconChỉ định icon cho file đó.
DescriptionCung cấp 1 số thông tin miêu tả thêm về file.

ĐÓNG GÓI ỨNG DỤNG BẰNG Visual studio PHẦN 2 22

Hình 21 : Thêm 1 kiểu file

- 3. Thêm các hành động hỗ trợ cho kiểu file, có
3 mẩu thông tin

  • Name : mô tả
    hành động (VD , trong 1 menu ngữ cảnh của Windows Explorer)
  • Argument :
    các đối số dòng lệnh sẽ được truyền cho ứng dụng . Biểu tượng “%l” nghĩa
    là truyền tên file . Thông thường , 1 thao tác open sẽ chỉ truyền tên
    file , trong khi các hành động khác có thể truyền thêm đối số (VD lệnh
    print có thể truyền tên file và đối số /p). Chương trình bạn phải kiểm
    tra các đối số dòng lệnh và thự hiện hành động thích hợp (trong trường
    hợp này là mở file) , như được mô tả trong H15
  • Verb : cho biết kiểu
    hành động , như open hay print





Hình 22 : Thêm hành động cho kiểu file

Lưu ý : Đừng sử dụng File Type
Designer để tiếp quản các kiểu file căn bản .bmp , .mp3 , .html . Hầu
hết người dùng máy tính đều có các ứng dụng mà họ ưu chuộng để truy xuất
các kiểu file này , và việc ghi đè các sở thích này chỉ làm tức giận
người dùng của bạn mà thôi.

1.4. CUSTOM ACTIONS EDITOR



- Editor này cho phép bạn liên kết quá trình cài
đặt với chương trình khác sẽ được gọi khởi động vào cuối quá trình cài
đặt .Để tạo 1 custom action , tạo 1 .dll hay .exe đại
diên cho custom action và add nó vào deployment
project. Nên nhớ rằng custom action chỉ được thực thi
vào lúc cuối quá trình cài đặt .

- VD : Nếu bạn muốn tạo dialog ReadMe , có thể User
Interface Editor
có hỗ trợ bạn làm điều đó , nhưng bạn muối
dialog ReadMe động , nhiều chức năng như liên kết website , có hình ảnh …
Với Custom Actions bạn có thể add bất cứ cái gì mà do bạn tự code ra,
như : copy file sang thư mục nào đó , điều khiển GAC , Registry , IE ,
tạo database v.v… . Có thể nói là không giới hạn khả năng , vì chính do
bạn tự tay code ra mà .

- Để add custom action vào Setup Project
. Click phải vào Setup Project trong Solution
Explorer
và chọnView->Custom Actions.

ĐÓNG GÓI ỨNG DỤNG BẰNG Visual studio PHẦN 2 23

Hình 23 : Mở Custom Actions Editor

- Sau đó sẽ có cửa sổ giống hình sau : Custom
Actions can be divided into 4 categories:

ĐÓNG GÓI ỨNG DỤNG BẰNG Visual studio PHẦN 2 24

Hình 24 : Custom Action Editor

- Custom Actions được chia làm 4 category sau :
Install, Commit, Rollback, and Uninstall . Nếu bạn muốn có dialog ReadMe
riêng bạn vào cuối quá trình cài đặt thì chọn Install
1.5. LAUNCH CONDITION S EDITOR



- Dùng editor này , bạn có đặt điều kiện nào đó
được kiểm tra phải có thì mới bắt đầu cài đặt ứng dụng được . Nếu người
dùng cố gắng cài đặt ứng dụng vào máy của họ, mà không thỏa điều kiện đã
xác định thì không thể cài đặt tiếp được . Khi đặt điều kiện launch
condition
, bạn có thể chỉ rõ điều kiện như kiểm tra sự tồn
tại 1 file xác định , registry key nào đó , hay 1 component nào đó .Launch
condition
editor có 2 tùy chọn cho bạn dùng
được minh họa như sau :

  • Search Target
    Machine:
    tùy chọn này cho phép bạn chỉ định cách search cái bạn
    cần trên máy client . Bao gồm như tìm fie , tìm registry key ….
  • Launch conditions
    : 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 .


ĐÓNG GÓI ỨNG DỤNG BẰNG Visual studio PHẦN 2 25

Hình 25

Bảng sau liệt kê danh sách launch condition
thể bạn cấu hình thông qua Launch conditions editor.
ConditionPurpose
File LaunchDùng để tìm 1 file nào đó trên máy client
Registry Launch InstallationTìm 1 key nào đó trên máy client
Windows Installer LaunchTìm file Windows installer
.NET Framework LaunchKiểm tra tồn máy client có .NET Framework hay không
Internet Information Services LaunchKiểm tra IIS

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 khóa
registry , tìm Component nào đó hay 1 điều kiện triển khai đặc biệt nào
đó .

1. Click phải vào Setup Project à
View
à Launch Condions . Cửa
sổ Launch Conditions xuất hiện .

ĐÓNG GÓI ỨNG DỤNG BẰNG Visual studio PHẦN 2 26

Hình 26

2. Click chuột phải vào folder Searh Target Machine .
Chọn một số giá trị sau :

a. Add file Search

b. Add 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 Visual Studio
Launch Condition Management in Deployment

URL :
ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.en/dv_deploy/html/9927d5e4-11ab-4819-9c7d-7e5e9d3cf555.htm
1.5.1. Searching the system during the install



Trong Cửa sổ Launch Conditions có 2 categories : Search
Target Machine và Launch Conditions . Thường trong Launch Condisions có
sẵn 1 Launch Condition là .NET framework . Bạn thấy những thuộc tính của
Launch Conditions .NET framework như hình sau :

ĐÓNG GÓI ỨNG DỤNG BẰNG Visual studio PHẦN 2 27

Hình 27

Trong của sổ Properties bạn thấy các thuộc tính quan trọng
sau :

- SupportedRuntimes : sẽ là con
số miêu tả version của .NET Framework , mà ứng dụng của bạn cần , dùng
“;” để liệt kê nhiều version .NET Framework mà ứng dựng của bạn dùng

- InstallUrl : là liên kết nơi
framework có thể download về.

Khi máy client chạy file setup , điều đầu tiên nó sẽ kiểm
tra có FrameWork được cài ở máy client chưa . Nếu không có , VS sẽ hỏi
yes/no muốn cài đặt FrameWork từ đường link InstallUrl . Do đó bạn có
thể cho thuộc tính InstallUrl là 1 đường dẫn tương đối từ CD hay thư mục
nào cũng được .
1.5.2. Search for a file



Hình sau ví dụ cho tìm file notepad.exe trong thư mục hệ
thống .

Chú ý dấu [System Folder] chỉ đến thư mục hệ thống (thư
mục Windows nếu sài WinXP) của máy client . Có thuộc tính Properites có
giá trị : FILEEXISTS1 , nghĩa là kiểm tra tồn tại hay không . Khi setup
điều kiện Tìm file sẽ được dò tìm đúng tên file tại thư mục được chỉ
định , Có thể điền thêm thông tin như Date , Version … để tìm chính xác
file cần tìm . Thuộc tính Depth = 2 : tức là độ sâu tìm , thư mục cha là
cấp 1 , thư mục con là cấp 2.

ĐÓNG GÓI ỨNG DỤNG BẰNG Visual studio PHẦN 2 28

Hình 28
1.5.3. Search for a registry entry



Trong ví dụ này sẽ tìm khoá registry MDAC MDAC (Microsoft
Data Access Components) ở máy client ,

RegKey : đường dẫn cần tìm

Value : giá trị cần tìm

ĐÓNG GÓI ỨNG DỤNG BẰNG Visual studio PHẦN 2 29

Hình 29
1.5.4. Kiểm tra tồn tại .NET Framework trên máy client .



Chọn menu View -> Editor -> Launch condition
s
. Trong Launch condition s Editor, chọn
Requirements on Target Machine node và chọn menu Action ->
Add .NET Framework Launch condition
. Bây giờ bạn đã tạo .NET
Framework launch condition , khi người dùng có chạy
chương trình cài đặt mà không có .NET Framework sẽ nhận được thông báo
rằng .NET Framework cần được cài đặt trước khi tiến trình cài đặt phần
mềm .

- C1 : Bạn cài đặt .NET Framework bằng thủ công
trên máy client :

  • Bạn có thể download
    Dotnetfx.exe từ website Microsoft …
  • Client có thể tải
    Dotnetfx.ext băng tính năng Microsoft Windows Update
  • Bạn có thể tìm thấy
    Dotnetfx.exe trên đĩa cài đặt Microsoft Visual Studio .NET
  • Khi cài đặt , chương
    trình cài đặt sẽ kiểm tra máy client có NetFramework không , nếu không
    có thì nó sẽ hiện ra thông báo (H13):




ĐÓNG GÓI ỨNG DỤNG BẰNG Visual studio PHẦN 2 30

Hình 30

Nếu nhấn No thì thoát khỏi trình cài đặt

Nếu nhấn Yes thì trình sẽ tự động tới trang web down
NetFramework tương ứng.

- C2 : Click chuột phải vào Setup Project à chọn
Properties à nhấn nút Prerequisites…

ĐÓNG GÓI ỨNG DỤNG BẰNG Visual studio PHẦN 2 31

Hình 31

Hiện lên dialog Prerequisites . Bạn đánh dấu check vào
phần .Net FrameWord 2.0

ĐÓNG GÓI ỨNG DỤNG BẰNG Visual studio PHẦN 2 32

Hình 32

- Ở dialog này bạn check vào các component (VD :
.Net Framework 2.0) , khi đó lúc setup phần mềm Windows Installer sẽ
kiểm tra các component đó có được cài sẵn vào máy client , nếu có thì
cho cài tiếp còn ngược lại không có thì sẽ cài . Mà các component sẽ
được lấy ra từ nơi mà bạn chỉ định ở các option bên dưới của dialog
Prerequisites

o Download Prerequisites from the component
vendor’s web site
: chỉ định component được install từ
website của nhà sản xuất . Đây là tuỳ chọn mặc định .

o Download Prerequisites from the same
location as my application
: chỉ định component được setup
từ thư mục của ứng dụ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 ứng dụng một cách tự động . Cách
này làm cho việc triển khai thêm rắc rối và không mang lại lợi ích nào
thuyết phục trong hầu hết các trường hợp.

(Còn nữa …)


Chữ Kí Của: nguoibantot192007
Giới tính Giới tính : NamAge Age : 34Birthday Birthday : 26/11/1989Job/hobbies Job/hobbies : Sinh ViênĐến từ Đến từ : traÌ€ vinhSở thich của bạn Sở thich của bạn : game,nghe nhaÌ£cPosts Posts : 275Points Points : 27277Thanks Thanks : 10Join date Join date : 08/06/2009Pet Pet : 4 .Endeavor

Thông điệp:

****************Hãy cùng chia sẻ với bạn bè bằng cách****************

Copy đường Link dưới đây gửi đến nick yahoo bạn bè!


ĐÓNG GÓI ỨNG DỤNG BẰNG Visual studio PHẦN 2Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang
Trang 1 trong tổng số 1 trang
* Viết tiếng Việt có dấu, là tôn trọng người đọc.
* Chia sẻ bài sưu tầm có ghi rõ nguồn, là tôn trọng người viết.
* Thực hiện những điều trên, là tôn trọng chính mình.
-Nếu chèn smilies có vấn đề thì bấm A/a trên phải khung viết bài
AVIM Control [F12 to Hide]
AutoTelexVNIVIQRVIQR*OffSpellOldAccent

Permissions in this forum:Bạn không có quyền trả lời bài viết
 :: 

Góc Học Tập - Kho Tài Liệu

 :: 

Lập Trình Tổng Hợp

 :: 

C / C++ / C#

-
 




Thông tin diễn đàn
Copyright ©2008 - 2009, DA07T Forum.
Design by by Mai Minh Thuận [Admin]
Bản quyền by Haitac261189.
RSS Liên hệ MAP
Powered by phpBB Version 2.0 Lisenced
Copyright ©2000 - 2008.
Gửi cho bạn trang này | Click vào tải Firefox 3 || Lưu ý:Nên sử dụng Fire Fox 3 để duyệt Web
Free Auto Backlinks From WebXayDung.VNText Back Links ExchangeFree forum | ©phpBB | Free forum support | Báo cáo lạm dụng | Thảo luận mới nhất