疑難排解設定和部署專案
本章節將說明您在建立部署專案與部署應用程式時,可能會遭遇的各種問題。
安裝專案所需的 .NET Framework 版本與應用程式的目標 .NET Framework 版本不同
安裝專案有啟動條件,這個條件可能會檢查是否有特定 .NET Framework 版本存在。 不過,這個版本可能會與應用程式使用的目標 .NET Framework 不同。 例如,您的應用程式以 .NET Framework 2.0 為目標,但安裝專案中的啟動條件卻會尋找和安裝 .NET Framework 3.5。 另一個例子是,Visual Studio 專案範本以 .NET Framework 4 Client Profile 為目標,但安裝專案的啟動條件卻會尋找和安裝 .NET Framework 4。
若要變更此預設行為,請遵循下列步驟:
在 [方案總管] 中,按一下安裝專案。
在 [檢視] 功能表上指向 [編輯器],然後按一下 [啟動條件]。
按一下 [.NET Framework]。
在 [屬性] 視窗中,將 [版本] 屬性變更為您要安裝專案檢查和安裝的 .NET Framework 版本。
請確定 Setup.exe 程式也會檢查和安裝正確版本的 .NET Framework。 如需詳細資訊,請參閱必要條件對話方塊和 HOW TO:Windows Installer 部署的安裝必要條件。
無法在 Windows Server 2008 R2 或 Windows 7 上安裝 .NET Framework 3.5 SP1
您可以將安裝專案設定為包含 .NET Framework 3.5 SP1 做為必要條件。 不過,在 Windows Server 2008 R2 或 Windows 7 電腦上安裝此必要條件會顯示下列錯誤訊息:「您必須使用角色管理工具安裝或設定 Microsoft .NET Framework 3.5 SP1」(You must use the Role Management Tool to install or configure Microsoft .NET Framework 3.5 SP1.)。在 Windows Server 2008 R2 中,.NET Framework 3.5 SP1 是選擇性的作業系統元件,但是這項必要條件預設為關閉。 如需詳細資訊,請參閱 Windows 內建了哪個版本的 .NET? (英文)。
若要解決這個錯誤,請變更 .NET Framework 3.5 SP1 啟動載入器封裝。
建立執行此命令列 "ocsetup Netfx3" 的可執行程式。
巡覽至 %ProgramFiles(x86)%\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\DotNetFX35SP1 資料夾。
將可執行程式複製到 [DotNetFX35SP1] 資料夾。
巡覽至 [en] 資料夾,並且以系統管理員身分開啟 package.xml。
在 <Commands> 區段內加入 <Command> 項目,以執行可執行程式。
在 Windows 7 上使用 Microsoft Visual Studio Registry Capture Utility 時發生錯誤
如果您在執行 Windows 7 的電腦上使用 Microsoft Visual Studio Registry Capture Utility (regcap.exe),可能會看見下列錯誤:「Microsoft Visual Studio Registry Capture Utility 已停止運作」(Microsoft Visual Studio Registry Capture Utility has stopped working)。安裝程式專案可能還是會建置,但是之後不會安裝 dll。
若要解決這個錯誤,請依照下列步驟執行:
巡覽至 %ProgramFiles(x86)%\Microsoft Visual Studio 10.0\Common7\Tools\Deployment。
以滑鼠右鍵按一下 regcap.exe,然後按一下 [內容]。
按一下 [相容性]。
選取 [相容性] 模式底下的核取方塊。
偵測不到 Visual C++ 安裝專案的相依性
如果您將安裝專案加入至 Visual C++ 方案,如果資料夾路徑的名稱中包含空格,則可能偵測不到 Visual C++ 方案中的相依性。 解決方法是將專案重新命名以移除空格,或是手動加入相依性。 例如,將 Documents\Visual Studio 2010\Projects 重新命名為 Documents\VisualStudio2010\Projects。
在原始檔控制下無法在 Visual Studio 中建置安裝專案
當您在 Visual Studio 2008 建置安裝專案時,可能會看到這類錯誤:「嘗試使用的命令無法完成,因為檔案 <檔案名稱>.vdproj 是在原始檔控制之下,無法簽出。」安裝專案並不會自動將檔案從原始檔控制簽出。
作業系統支援
Windows Server 2008 Server Core 或 Windows Server 2008 R2 Server Core 提供具有有限功能的低維護伺服器環境,因此不支援 Visual Studio 啟動載入器和 Visual Studio Installer (安裝專案)。 例如,Server Core 安裝選項只支援 .NET Framework 3.5 Server Core 設定檔,因此就無法執行與完整 .NET Framework 相依的 Visual Studio 功能。 如需詳細資訊,請參閱Server Core。
無法安裝 Managed 自訂動作
當您安裝 Managed 自訂動作時,可能會看到表示遺漏 .installstate 檔的錯誤訊息。 如果 Managed 自訂動作未實作 Install 動作,就會發生此情況。 Install 動作負責建立 .installstate 檔,而其餘動作則負責更新該檔案。
若要解決這個錯誤,請在自訂動作中實作 Install、Uninstall、Commit 和 Rollback 動作。
.NET Framework 3.5 SP1 語言套件必須符合 Visual Studio 2008 使用的地區設定,否則無法安裝
當您選取 .NET Framework 3.5 SP1 做為安裝專案的必要條件時,Visual Studio 並不會產生啟動載入器或安裝程式來安裝不同地區設定的語言套件。 例如,如果您不是使用日文版的 Visual Studio,則安裝專案不會包含 .NET Framework 3.5 SP1 日文語言套件。
若要解決這個錯誤,並建立 .NET Framework 3.5 SP1 的日文版可轉散發套件,請在 %ProgramFiles%\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\DotNetFX35SP1 目錄中建立新的 ja 目錄。 ja 目錄應包含 eula.rtf 和 package.xml 檔。
如果已安裝 .NET Framework 3.5 SP1,則無法安裝語言套件
如果電腦上已安裝核心 .NET Framework 3.5 SP1,則會無法安裝 .NET Framework 3.5 SP1 語言套件。 例如,如果電腦上已安裝 .NET Framework 3.5 SP1,則您無法安裝 .NET Framework 3.5 SP1 日文語言套件做為不同應用程式安裝程式中的必要條件。
解決方法是建立語言套件專用的啟動載入器套件。 在啟動載入器套件中,加入對 .NET Framework 3.5 SP1 的相依性,讓語言套件只有在已安裝核心 .NET Framework 時才會安裝。 或者,您也可以手動安裝語言套件。
64 位元 Managed 自訂動作擲出 System.BadImageFormatException 例外狀況
如果您在安裝專案中加入 64 位元 Managed 自訂動作,則 Visual Studio 建置處理序會將 32 位元版本的 InstallUtilLib.dll 內嵌至 MSI 做為 InstallUtil。 之後就會載入 32 位元的 .NET Framework 來執行 64 位元 Managed 自訂動作,因而造成 BadImageFormatException 例外狀況。
如需解決方法,請將 32 位元 InstallUtilLib.dll 取代為 64 位元版本。
從 Windows Installer SDK 開啟 Orca 中結果產生的 .msi。
選取二進位資料表。
按兩下 InstallUtil 這筆記錄的 [Binary Data] 儲存格。
確定已選取 [從檔名讀取二進位],然後按一下 [瀏覽] 按鈕。
瀏覽至 %WINDIR%\Microsoft.NET\Framework64\v2.0.50727。
注意事項 Framework64 目錄只會安裝在 64 位元平台上,並對應至 64 位元處理器類型。
選取 InstallUtilLib.dll。
按一下 [開啟] 按鈕。
按一下 [確定] 按鈕。
如需詳細資訊,請參閱使用 Visual Studio 的 64 位元 Managed 自訂動作 (英文)。
建立自訂對話方塊和文字方塊的路徑
如果您建立含有文字方塊的自訂對話方塊,則 [安裝資料夾] 對話方塊應該要放在自訂對話方塊後面。 這樣就會自動傳播目錄值。 反之,如果該對話方塊和 [安裝資料夾] 對話方塊的順序顛倒,您就必須手動傳播目錄值。
輸出視窗中出現額外的建置錯誤
當您遇到特定建置錯誤時,也可能會看到一般錯誤訊息,例如「建置啟動載入器時發生一般錯誤」或「無法復原的建置錯誤」。請忽略這些一般錯誤訊息,只解決特定錯誤。
方案重新開啟時,會重新包含先前排除的檔案
如果您在從安裝專案排除某個檔案之後,關閉再重新開啟方案,您可能會看見該檔案又重新包含在裡面。 如果同一個 DLL 檔有兩個副本分別存在於兩個不同的來源位置,就可能會發生此情況。
若要解決這個錯誤,請變更其中一個檔案的 [複製到本機] 屬性:
在 [方案總管] 中,按一下您要移除的 DLL 參考。
在 [檢視] 功能表中,按一下 [屬性視窗]。
將 [複製到本機] 屬性變更為 False。
安裝專案建置失敗,錯誤為「存放裝置空間不足,無法完成此操作」
如果您在將大型檔案加入安裝專案之後,嘗試建置安裝專案,則即使本機硬碟有可用磁碟空間,還是會出現下列錯誤:「存放裝置空間不足,無法完成此操作。」 建置程序期間的虛擬記憶體使用量也可能會增加。
若要解決這個錯誤,請在建置電腦中加上更多 RAM,或試試下列解決方法:
在專案中,加入與該大型檔案相同名稱的檔案。
在專案屬性頁面中,將安裝程式設為 [封裝成為鬆散未壓縮的檔案]。
執行建置。
將完整大小的大型檔案複製到組建位置。
安裝專案不會更新已修改的檔案
即使您設定安裝專案移除舊版的檔案,Windows Installer 仍然不會取代使用者已修改或取代的檔案。 如需詳細資訊,請參閱兩個檔案的版本都沒有檔案雜湊檢查 (英文)。
無法使用啟動條件來檢查 .NET Framework 3.5 SP1
在只使用 MSI 的案例中,不支援將 .NET Framework 3.5 SP1 當成必要條件來偵測。 您必須改為設定 Setup.exe 啟動載入器來檢查和安裝 .NET Framework 3.5 SP1。 如需詳細資訊,請參閱必要條件對話方塊。
如何建立包含 .NET Framework 的 64 位元啟動載入器
加入 .NET Framework 3.0 做為必要條件並在 64 位元電腦上安裝 Setup.exe 啟動載入器,會顯示表示不支援 64 位元作業系統的錯誤訊息。
.NET Framework 3.5 支援 32 位元和 64 位元作業系統。 如果您的應用程式同時以 32 位元和 64 位元作業系統為目標,請選取 [必要條件] 對話方塊中的 .NET Framework 3.5。 如需詳細資訊,請參閱必要條件對話方塊。
如何安裝 SQL 2008 和 .NET Framework 3.5 SP1 的啟動載入器套件?
您可以透過安裝 Visual Studio Express Editions,將 SQL 2008 和 .NET Framework 3.5 SP1 的啟動載入器套件安裝到開發電腦上。 如果是 Visual Studio 2010,則已包含 SQL 2008 和 .NET Framework 3.5 SP1 啟動載入器套件,因此不需要這個解決方法。
文字方塊中的反斜線造成無效的目錄或 URL 例外狀況
如果您的自訂動作依賴客戶輸入安裝資料夾的路徑,您可能會看到 ArgumentException 錯誤訊息。 這可能與無效的目錄或 URL 有關。
若要防止出現此錯誤訊息,請將 [Edit1] 屬性和 [Edit1Value] 文字方塊中的反斜線取代為空白,如:/name="[TARGETDIR] "。 然後,剖析該值,並使用 Combine 方法建立完整路徑。
無法在安裝專案的錯誤訊息中加入新行字元 (\n)
如果您在安裝專案中撰寫錯誤訊息,則無法在安裝專案中或以 Orca.exe 加入新行字元。 您可以改在建置後動作中,使用 Windows Installer API 的下列命令加入它:"INSERT INTO `Property` (`Property`, `Value`) VALUES 'ERRORMESSAGELINES', 'first\r\nnext\r\nlast')"。 如需使用建置後動作的詳細資訊,請參閱 https://go.microsoft.com/fwlink/?LinkId=150770 (英文)。
無法在必要條件對話方塊中選取 .NET Framework 2.0 SP1 或 .NET Framework 3.0 SP1
如果尚未安裝 .NET Framework 2.0 SP1 或 .NET Framework 3.0 SP1,[必要條件] 對話方塊也不會在要安裝的應用程式清單中加以顯示。 這些不會以獨立可轉散發檔案的方式提供。 若要在使用者電腦上安裝這些做為必要條件,請選取 [必要條件] 對話方塊中的 [.NET Framework 3.5]。 如需詳細資訊,請參閱必要條件對話方塊。
文字方塊中的預設值會覆寫命列參數
如果您在執行安裝程式時使用 \qb 旗標,並傳入命令列參數來設定使用者對話方塊中的屬性,則這些參數可能會被覆寫。 若要防止屬性的預設值被客戶覆寫,請使用 Orca.exe 變更 msi 檔案。
將對話方塊上的編輯欄位值設定為其屬性名稱。 例如,將 [Edit1Value] 屬性設定為 [EDITB1]。
在 Visual Studio 中建置 MSI。
使用 ORCA 編輯 MSI,並將屬性的預設值放在屬性資料表中。
儲存 MSI。
您也可以使用建置後動作進行這項變更。 如需使用建置後動作的詳細資訊,請參閱 https://go.microsoft.com/fwlink/?LinkId=150770 (英文)。
沒有偵測到組件相依性
當專案輸出群組、組件或合併模組加入至部署專案時,系統會自動偵測任何相依的組件,並將其加入至專案中。 部署工具可以更輕鬆地偵測專案輸出群組的相依性,因此建議您加入含有組件的專案輸出群組。
如果相依組件是在執行階段透過程式碼載入,部署工具就無法偵測出該組件。 您應該盡可能避免由程式碼載入組件,或者,您可以手動將相依組件加入至部署專案中。 下表列出可能偵測不到相依性的問題和其解決方案。
相依性問題 |
解決方案 |
---|---|
此專案參考只應該安裝為另一個產品一部分的元件。 |
|
此專案參考未公開其所有相依性的 Unmanaged 元件。 |
|
此專案參考與 Unmanaged 元件具有相依性的組件。 |
|
安裝於當地語系非英文之電腦時,MFC 應用程式並未予以當地語系化
使用 Visual Studio 部署專案部署 MFC 應用程式時,並不會偵測已當地語系化之合併模組 Mfc_loc_e.msm 與 Mfc_loc_fe.msm 的相依性。 合併模組包含在 Visual C++ 中,預設的安裝位置 \Program Files\Common\Merge Modules。 為了散發已當地語系化的 MFC 應用程式,您必須手動將這兩個合併模組加入至部署專案中。
安裝後無法在 Web 伺服器上找到檔案
將「Web 安裝」安裝至 Web 伺服器時,Web 應用程式資料夾與任何 Web 自訂資料夾的 [VirtualDirectory] 屬性會決定這些資料夾中的檔案將安裝至 Web 根目錄的相對位置。 如果屬性是空白的,則檔案會安裝至 Web 根資料夾 (inetpub\wwwroot)。 如需詳細資訊,請參閱 VirtualDirectory 屬性。
如何將 Web 應用程式安裝至 Web 伺服器根目錄?
根據預設,使用「Web 安裝」部署專案安裝 Web 應用程式時,檔案會直接安裝在 Web 根資料夾之下的一個資料夾中,其名稱與部署專案相同。 Web 應用程式資料夾的 [VirtualDirectory] 屬性決定了檔案的安裝位置。 若要安裝至 Web 根目錄,請將 [VirtualDirectory] 屬性變更為 null (刪除預設值)。 如需詳細資訊,請參閱 VirtualDirectory 屬性。
如何關閉相依性分析?
不幸的是,目前沒有直接的方式可關閉相依性分析搜尋和解析。 不過,仍有一個解決方法,您可以在按一下 [SearchPath] 屬性時出現的對話方塊中,清除 [包含標準搜尋路徑] 選項。
另外還有一些重點需要考慮:
您必須使用 [加入檔案] 命令加入檔案 (從 [專案] 功能表選取 [加入],然後按一下 [檔案])。 如果您使用 [加入專案輸出] (從 [專案] 功能表選取 [加入],然後按一下 [專案輸出]),就會加入從程式碼專案回報的相依性。
在建置時,您可能會看見一個或多個 [找不到相依性] 的警告,不過在此情況下可予以忽略。
如果您只想要關閉某些檔案的相依性分析,您可以將這些檔案放置在關閉標準搜尋路徑的合併模組專案中。 然後,請使用 [加入合併模組] (從 [專案] 功能表選取 [加入],然後按一下 [加入合併模組]),將 .msm 包含在開啟標準搜尋路徑的一般安裝專案中。
如何關閉預期使用者會修改或刪除之檔案的修復?
Visual Studio 會建立通告的捷徑,如此一來,當程式啟動時就會驗證所有檔案是否存在。 若要變更這個行為,並使其不修復檔案,請選取安裝專案中的檔案,並將 [Condition] 屬性變更為 [NOT REINSTALL],如此檔案在修復時便不會重新安裝,而且其 [Transitive] 屬性會設定為 [TRUE],這樣便會重新評估條件。 如此會讓 Installer 在第一次刪除檔案後於螢幕上短暫出現,因為它會確認不應該重新安裝該檔案,不過之後您就不會看見 Installer 了。
如何偵錯自訂動作/Installer 類別?
您可以使用下列任何一項方法:
在程式碼中,加入 System.Diagnostics.Debugger.Launch 的呼叫。 這個方法會開啟 Just-In-Time 偵錯,並讓您將新的偵錯工具附加至程式碼中。
在程式碼中,加入 MessageBox.Show("Debug Me") 的呼叫。 當此訊息方塊出現時,請使用 Visual Studio 附加至 MessageBox 處理序。 然後,請在程式碼中加入 break (Visual C# 專案) 或 stop (Visual Basic 專案)。
設定偵錯偏好設定以啟動 %windir%\Microsoft. net\Framework\version\InstallUtil.exe 做為外部程式,而其設定位置是在專案設計工具的 [偵錯頁面] 上。 自訂動作組件的名稱是命令列引數。 當您按下 F5 時,就會叫用中斷點。 InstallUtil.exe 將會執行自訂動作,就如同 MSI 的執行方式一樣。
向 COM 介面註冊組件沒有作用
這是已知的 RegAsm Bug。 如果您的組件有相依性 (例如與另一個類別庫 (Class Library) 有相依性),則會因為系統呼叫 RegAsm 以取得註冊資訊,而可能導致 RegisterCOM 無法運作。 由於 RegAsm 是在 \obj 目錄中呼叫的,所以找不到相依性,而且 RegAsm 會失敗而沒有任何告知。 最佳的解決方法是手動從 \bin 目錄加入組件。 另一個解決方法是使用 RegisterSelfReg。
此外,請確定您是使用 RegAsm/Codebase 手動註冊組件。 如果您的組件不在共用位置中,除非它與呼叫程式碼位於相同的目錄,否則就找不到該組件。 /Codebase 會將目錄輸入登錄中。
如何使用記錄檔疑難排解 Windows Installer 安裝問題?
Windows Installer 會將安裝程式時的作業記錄在記錄檔中。 此記錄檔位於 .msi 檔所在的目錄中。
如何取得安裝的記錄檔?
有兩個方式:
從命令列執行下列命令,並使用記錄參數。
misexec /i mysetup.msi /l*v mylog.txt
將下列文字儲存成 .reg 檔並載入登錄中。
REGEDIT4 [HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Installer] "Logging"="voicewarmup" "Debug"=dword:00000007
然後開啟您的 \temp 目錄並依日期排序。 最近的 msi*.log 檔就是來自最近安裝或解除安裝的記錄。
如何將產品安裝至先前安裝之產品的子目錄中?
假設先前安裝的產品 Product 1 已安裝,而且含有名為 MyFile.txt 的檔案。
使用 Orca.exe (從 Windows Installer SDK) 檢視檔案資料表,然後找出表示 MyFile.txt 的資料列。
取得 Component_ column 的值,然後開啟 [元件資料表]。
在 [元件資料表] 中,找出 Component 資料行中含有 Component_ value 的資料列,並取得 ComponentID。 將此值複製到 [剪貼簿] 中。 關閉 Orca.exe。
在您的安裝專案中,開啟 [啟動條件編輯器],並加入 Windows Installer 元件搜尋。 針對新搜尋的 [ComponentID] 屬性,貼上 ComponentID。
複製 [Property] 屬性。 它應該看起來像 COMPONENTEXISTS1。
開啟 [檔案系統編輯器] 並選取 [應用程式資料夾]。
將 [DefaultLocation] 屬性編輯成如同 [COMPONENTEXISTS1]MySubFolder (由於 COMPONENTEXISTS1 中的路徑結尾含有 '\')。
在上個程序的步驟 6 之後,您可能會想要將條件加入至 [啟動條件編輯器],以便查看是否找到此元件;並在找不到時阻擋安裝及顯示訊息。 此條件應該是 COMPONENTEXISTS1 (這表示如果 COMPONENTEXISTS1 不是空的,便可以執行 Installer)。
如何將自訂 Web 資料夾安裝至非預設的通訊埠?
若要將自訂的 Web 資料夾安裝到不是預設指定的通訊埠,請從命令列執行安裝。 此命令必須包含每個 Web 自訂資料夾的 [Property] 屬性值, 通常值會類似 NEWWEBPROPERTY1。 此外,您也必須加入 Web 應用程式資料夾的 TARGETPORT。
例如,如果 Web 伺服器使用通訊埠 20,您的命令列看起來應該如下:
msiexec /i mywebsetup.msi TARGETPORT=20 NEWWEBPROPERTY1PORT=20
上一個命令僅適用於一個 Web 資料夾。 如果您有一個以上的 Web 資料夾,請依先前指定的方式為每個資料夾加入更多的 PROPERTY=VALUE 組,將每個列出之資料夾的通訊埠重新導向到指定的通訊埠。
您可能會想要移除 [安裝位址] 對話方塊,因為如果有人在安裝時於使用者介面中變更此通訊埠,自訂 Web 資料夾就會使用命令列的值。
如何安裝至網站的根目錄?
若要安裝至網站的根目錄 (例如 c:\inetpub\wwwroot),請在 Web 安裝專案中或在安裝時,將 [VirtualDirectory] 設為空字串。
如何將 ServicedComponent 安裝至 GAC 並在 COM+ 資料庫目錄中加以設定?
如果您嘗試將 ServicedComponent 安裝至全域組件快取 (Global Assembly Cache,GAC),並在 COM+ 目錄中予以設定,您可能會收到下列編譯錯誤:
"Unable to build custom action named 'Primary output from RegServer (Active)' because the file's Folder property is set to Global Assembly Cache."
系統不支援這種安裝,因為當自訂動作在執行時,GAC 中的組件並非隨時可用 (GAC 認可)。
解決方法就是將您的程式碼放入不同的檔案中,然後將自訂動作程式碼放入不會進入 GAC 的檔案。 不過,有時候您會無法用這種方式散發程式碼。
如何在捷徑上建立解除安裝連結?
在安裝專案的目錄中,建立新的 Uninstall.bat 檔。
在安裝專案中,複製 [ProductCode] 屬性 (如同 [12345678-1234-1234-1234-123412341234] 的值)。
編輯 Uninstall.bat,讓它包含下列這一行程式碼,其中 ProductCode 就是您在步驟 2 中複製的值:
Msiexec /x ProductCode
將 Uninstall.bat 加入至安裝專案的應用程式資料夾中。
以滑鼠右鍵按一下 Uninstall.bat,並選取 [建立捷徑] 即可建立捷徑。
將捷徑放置在安裝專案的適當 [開始] 功能表資料夾中。
將此捷徑重新命名為類似「解除安裝 <應用程式名稱>」的名稱。
哪裡可以找到如何使用安裝專案的範例?
如需如何使用安裝專案的範例,請參閱 部署工作和逐步解說。
如何規劃 .NET Framework 架構應用程式的部署?
本指南將提供您規劃和實作有效的 .NET Framework 架構應用程式部署時所需的必要資訊:部署 .NET Framework 架構應用程式 (英文)。
哪裡可以下載 Windows Installer SDK?
您可以從 Microsoft 下載中心下載 Windows Installer SDK:
https://go.microsoft.com/fwlink/?LinkId=161393 (英文)。
哪裡可以取得 Crystal Reports 的更新和說明?
您可以從 BusinessObjects.com 網站的 "Downloads & Updates" 頁面安裝更新的軟體與合併模組:
http://support.businessobjects.com/fix/downloads_updates.asp (英文)
如何解決「無法復原的建置錯誤」錯誤訊息?
如果您在建置安裝和部署專案時收到「無法復原的建置錯誤」錯誤訊息,請閱讀下列文件:
<PRB:當您建置安裝和部署專案時,出現「無法復原的建置錯誤」錯誤訊息>,網址為 https://support.microsoft.com/kb/329214/zh-tw。
如何解決驗證錯誤訊息?
如果您收到類似 An error occurred when validating. HRESULT = '80040155' 的錯誤訊息,請參閱<PRB:當您建置安裝和部署專案時,出現「無法復原的建置錯誤」錯誤訊息>文件,網址為 https://support.microsoft.com/kb/329214/zh-tw,並依照<遺失登錄>的步驟執行。
如何在部署期間使用自訂動作修改 IIS
<在部署期間以自訂動作修改 Internet Information Services>(網址為:https://msdn.microsoft.com/zh-tw/library/aa289522(vs.71).aspx(vs.71).aspx(vs.71).aspx) (英文) 一文說明如何修正一般問題。 包括下列項目:
如何修改無法在 [檔案系統編輯器] 之 Web 資料夾上使用 IIS 資料夾的設定。
如何部署同時使用 Visual Basic 6 和 Visual Basic .NET (含) 以後版本的混合應用程式。
與 Visual Basic 6 應用程式相比,部署以 Visual Studio .NET (含) 以後版本撰寫的應用程式的變更。
如何部署 ASP.NET 應用程式?
如需如何使用 Visual Studio .NET 部署 ASP.NET 應用程式的詳細資訊,請參閱使用 Visual Studio .NET 部署 ASP.NET 應用程式 (英文)。
安裝於 Windows 2000 之後,應用程式失敗並警告需要 MDAC 2.8
任何參考 System.Data 命名空間的應用程式,對於 Microsoft Data Access Components (MDAC) 2.8 (含) 以後版本都具有相依性。 在多數情況下,該檔案已安裝成為作業系統的一部分。 對於 Windows 2000 Service Pack3 (含) 以前版本,在安裝應用程式時,可能需要一併安裝該元件。 您可將該元件加入至啟動載入器 (Bootstrapper) 套件,並在安裝期間從 Microsoft 下載檔案,即可達到此目的。 如需詳細資訊,請參閱應用程式部署必要條件。
如何變更自訂動作的使用權限等級?
根據預設,自訂動作會以 SYSTEM 權限執行,但您會發現,自訂動作需要更多權限才能完成工作。 若要變更此預設行為,請停用自訂動作中的 "noimpersonate" 旗標。 如需詳細資訊,請參閱指令碼內的自訂動作執行選項。
相關知識庫文件
下列知識庫文件將會提供有關 Windows Installer 部署問題的資訊:
Visual Studio .NET 部署期間出現「安裝程式未包含 .NET Framework」錯誤訊息 (320426),網址為 https://support.microsoft.com/default.aspx?scid=kb;zh-tw;320426 (機器譯文)
HOW TO:建立 .NET 部署專案的捷徑 (307358),網址為 https://support.microsoft.com/default.aspx?scid=kb;zh-tw;307358。
BUG:當您在 Visual Studio .NET 安裝和部署專案中使用 Vfpodbc.msm 合併模組時,出現安裝 ODBC 驅動程式錯誤的錯誤訊息 (814700),網址為 https://support.microsoft.com/default.aspx?scid=kb;zh-tw;814700。
FIX:當您建置安裝專案時發生無法建置自訂動作的錯誤 (814744),網址為 https://support.microsoft.com/default.aspx?scid=kb;zh-tw;814744。
HOW TO:部署使用 ADO Interop 的 Visual Basic .NET 應用程式 (321688),網址為 https://support.microsoft.com/default.aspx?scid=kb;zh-tw;321688。
BUG:當您安裝使用 Web 啟動載入器的套件時發生錯誤 1619 (313498),網址為 https://support.microsoft.com/default.aspx?scid=kb;zh-tw;313498。
HOW TO:將組件部署到目標電腦的全域組件快取 (324168),網址為 https://support.microsoft.com/default.aspx?scid=kb;zh-tw;324168。