程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> Windows 7開發:安裝程序檢測 - 管理

Windows 7開發:安裝程序檢測 - 管理

編輯:關於.NET

目標

在這個試驗中,您將學習到如何 :

•   在 Windows Vista 以 及更新的版本中,確定關於安裝偵測的問題。

•   修復安裝偵測問題

系統要求

您必須擁有下面的環境以完成這個 實驗 :

•  Microsoft Visual Studio  2008 SP1

•  Microsoft Windows 7

練習 1: 安裝偵測問題

在這個聯系中,您將看到一個“早期版本的” 可執行文件被錯誤的當成一個安裝程序,而事實上它是一個正常的應用程序且不需要以管理 員權限來運行。

任務 1 – 確定 UAC 功能已開啟

在這個任務中,您將 確定用戶帳戶控制( UAC )處於啟用狀態。這將使得問題得以實現。

1. 點擊 Start:

a. 點擊 Control Panel.

b. 點擊 User Accounts and Family Safety.

c. 點擊 User Accounts.

d. 點擊 Change User Account Control Settings 。一個和下面類似的對話框會彈出來。

幫助

也可以,點擊 Start, 點擊 Run, 並輸入 UAC. 然後點擊 Change User Account Control Settings.

2. 確 定滑塊如上圖所示一樣處在默認級別上。(您可以設置它為另外的級別,但是不要將它設置 為 Never notify ,因為這將使 UAC 處於關閉狀態。)

3.Click OK.

任務 2: 確定問題 Identifying the Problem

1. 在 Windows 資源管理器中轉到 BrokenStockUpdater\Debug 文件夾。

2. 將視圖變為中等圖標或者是大圖標,以方便 您查看類盾牌形狀的圖標覆蓋在 BrokenManagedStockUpdater.Exe 文件上。

您應該可以看到和下面類似的圖標 :

3. 雙擊文件並確認會彈出 UAC 對話框讓您來提升權限。

這並不是我們希望的,這是由於文件名中包含了“ update ”(並且它是一個不包含清單 文件的 32 位應用程序)。系統會把包含“ setup ” ,“ install ” 和“ update ”關 鍵字的文件偵測出來。

練習 2: 解決這個問題

我們可以通過添加一個外部或內置的清單文件,來對上一個練習中的最後一個任務發現的 問題進行修復。

任務 1: 添加一個外部清單文件

1. 在 Windows 資源管理器中轉到 BrokenStockUpdater\Debug 文件夾並 :

a. 右鍵點擊空白處

b. 鼠標指向 New.

c. 點擊 Text Document.

d. 將文件命名為 BrokenManagedStockUpdate.Exe.manifest.

幫助

注意:只要新命名的這個文件存在,即便它是空的,類似盾牌的圖標也會消失。

2. 在 Notepad 或其他文本編輯器中打開清單文件。

3. 輸入下列文本 :

XML

<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft- com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1"  xmlns:asmv2="urn:schemas-microsoft-com:asm.v2"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <assemblyIdentity version="1.0.0.0" name="StockUpdater"/>
   <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
     <security>
       <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
         <requestedExecutionLevel level="asInvoker" uiAccess="false" />
       </requestedPrivileges>
     </security>
   </trustInfo>
</asmv1:assembly>

幫助

關鍵性的信息是級別屬性。該值 asInvoker 表明 .exe 文件將以與創建者相同的級別來 運行(例如, Windows 資源管理器),這表示該 .exe 文件不是一個安裝程序,而是一個普 通的應用程序。另一個級別是 requireAdministrator ,它表明該 .exe 文件需要管理員權 限來正確運行。例如,他就是一個安裝程序並且需要訪問具有特殊權限的位置,比如 \Windows\System32 文件夾或 HKEY_LOCAL_MACHINE\Software 鍵。

4. 保存文件

5. 退出編輯器

6. 雙擊 .exe 文件並確定這個修改如預期一樣生效了。

這樣,您應該不會再看到彈出 UAC 對話框讓您來提升權限並且應用程序可以正常的運行 。

任務 2: 添加一個內置的清單文件

1. 使用 Visual Studio 2008 ,打開 BrokenStockUpdater 文件夾下的 BrokenStockUpdater.sln 解決方案文件。

2. 檢查 BrokenManagedStockUpdater 項目。

這個項目沒有清單文件。要確定這一點 :

3. 點擊 Project 菜單

4. 點擊 Properties

5. 點擊 Application (應該已經被選中了)。

Icon and Manifest 按鈕應該已經被選中了並且 Manifest 設置應該被設置為 Create application without a manifest ,如下圖所示 :

幫助

Visual Studio 2008 中的默認設置是生成一個清單文件。

6. 將 Manifest 設置為 Embed manifest with default settings ,如下圖 :

幫助

該設置不允許您改變 UAC 級別(它默認會設置為 asInvoker )。想要獲得其他值,您可 以添加一個 Application Manifest File 類型的新項並對整個 XML 清單文件進行文本編輯 。

7. 重新生成解決方案。

8. 刪除前一個任務的清單文件

確定類似盾牌的圖標消失了,並且當雙擊應用程序的時候,沒有彈出 UAC 對話框讓您來 提升權限。

幫助

在 FixedStockUpdater 文件夾中,您可以找到已修復的解決方案 FixedStockUpdater.sln 。

總結

本次實驗中,您了解了安裝偵測是如何工作的。同時了解了不包含清單文件的 32 位應用 程序,如果文件名中包含了關鍵字,則可能會在不需要的情況下被提升權限。反過來也可能 會帶來問題,如果真的需要提升權限的時候,並沒有自動進行權限提升的話,安裝程序可能 會運行失敗。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved