vs2005安裝了sp1後發布問題解決辦法

2022-02-08 21:35:48 字數 1527 閱讀 9751

安裝完畢以後,測試一下真的很不錯。關連的程式集的更新也可以隨時更新,這可比vs2003強多了。vs2003有改乙個引用的程式集就要更新所有的,不會就會說版本不對。

但用到正式的專案的時候卻出現了問題。特別是公升級上來的專案就可能存在下列問題。

碰到錯誤首先要把錯誤的詳細資訊輸出來看看

操作方法:

vs 2005的工具選單-選項-專案和解決方案-生成並執行,設定「msbuild 專案生成輸出詳細資訊」,選擇「詳細」。然後再生成web deployment projects專案,檢視「輸出」對話方塊內的資訊,就可以檢視到詳細的導致無法編譯的問題。

錯誤一:報錯誤:「aspnet_merge.exe已退出,**為1」

有兩種情況,一種是 an error occurred when merging assemblies: 索引超出了陣列界限。

c:\program files\msbuild\microsoft\webdeployment\v8.0\microsoft.webdeployment.targets(574,9): error msb6006: 「aspnet_merge.exe」已退出,**為 1。

到網上查了好久,有說是自定義屬性的描述中有中文的緣故,比如[webmethod(description="測試方法")]這樣子,可是我寫乙個測試的根本跟這個就沒有什麼關係。查了好久久還是未果,只好自己動手刪除檔案來測試了。

解決過程:

幾乎把所有的檔案都刪除了,還是不行,後來才發現原來是因為assemblyinfo.cs檔案中有中文的問題。把所有的中文去掉即可。

解決辦法:

普通的web專案

把assemblyinfo.cs檔案中所有的中文字都刪除掉。注釋可以不刪除,然後再編譯即可

包括webservice的服務頁的專案

對於包括有webservice的頁面則要檢查description是否有超過15個漢字的說明,如果超過就改短一點。這樣就可以了。我還試了一下中英文組合的情況,非常奇怪的是,我用14個漢字加上兩個英文可以,加上三個英文也可以,加上四個就不行了。後來我更狠一點。用一百多個英文本加兩三個漢字也可以,到現在還沒有搞明白是怎麼回事,不過有一點可以確定的是,中文字不要超過15個,否則就會報「索引超出了陣列界限」的錯誤。

還有一種錯誤是:duplicate type '_default' found in assembly  

解決辦法:

看字面意思就明白原因了,就是乙個程式集裡發現了兩個類名一樣的類,這樣肯定是不行的,但編譯的時候又會過,因為放在不同的目錄,vs2005就可以編譯過了,真不明白vs2005是為什麼要這麼設計,因為vs2005在新建頁面的時候沒有把命名空間加上去,所以都是同乙個命名空間下所以才會這樣,vs 2005的web專案預設的把命名空間給去掉了,只能手動增加乙個命名空間,在cs檔案**中加入namespace的語句塊,同時也在修改aspx檔案的<@page>的inherits中寫入對應的[namespace].[類名];

其實這個問題類似於vs2003中的發布問題。如果專案中有兩個檔名一樣的情況也會報錯,比如有兩個help.aspx檔案分別在不同的目錄,或者a.gif檔案在不同的目錄也會報錯。

VS2005怎麼打SP1補丁

2.作好打vs2005 sp1補丁之前的設定.第一步 修改登錄檔,開啟登錄檔 執行 regedit hkey local machine software policies microsoft windows safer codeidentifiers,更改 policyscope 的登錄檔值,然後...

整合vs2005sp1到vs2005安裝檔案中

首先,需要大於3g的硬碟空間 解壓vs2005用 這個補丁只會應用到vs2005上,和我們的msnd是沒有啥關係的.1.解壓vs2005.首先需要把我們vs2005安裝光碟內的安裝檔案解壓在我們的硬碟上.使用如下命令 msiexec.exe ag vs vs setup.msitargetdir d...

整合vs2005sp1到vs2005安裝檔案中

首先,需要大於3g的硬碟空間 解壓vs2005用 這個補丁只會應用到vs2005上,和我們的msnd是沒有啥關係的.1.解壓vs2005.首先需要把我們vs2005安裝光碟內的安裝檔案解壓在我們的硬碟上.使用如下命令 程式 msiexec.exe a g vs vs setup.msi target...