2010-06-22 40 views
1

我剛剛通過一個大型項目並將其重命名爲很多名稱空間指令。一切工作在我開發框罰款 - 部署到舞臺,我得到:ASP.NET Compliler錯誤類型存在於兩個動態編譯的DLL中

Compiler Error Message: CS0433: The type 'ASP.usercontrols_pageheader_ascx' exists in both 'c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\89252a5f\7305b927\App_Web_hodsbmv3.dll' and ' c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\89252a5f\7305b927\App_Web_pageheader.ascx.6bb32623.bs4iljip.dll'

呸。非常類似於:Deployment Project dlls cause ‘type x exists in both’ errors,但必須來自不同的原因。

我沒有看到其他文章中提到的問題(App_Code/CodeFile指令)。瞭解它爲什麼在我的機器上運行:當它位於vdir中時,網站沒有問題。如果我從主頁面中刪除「PageHeader」usercontrol它居住在everthing罰款。 如果我重命名「PageHeader」,一切都很好 。更新:重命名usercontrol沒有幫助。

我曾看過反射器中錯誤提到的組件; App_Web_hodsbmv3.dll包含我項目中所有用戶控件的動態類。 \App_Web_pageheader.ascx.6bb32623.bs4iljip.dll'僅爲PageHeader usercontrol包含相同的代碼。爲什麼ASPX決定在兩個程序集中創建同一個類?

回答

0

獲勝的答案去這個論壇的帖子:Publish web site: TYPE exists in both temporary ASP.NET assemblies

如果您收到此錯誤,檢查所有的指令屬性和代碼隱藏的類名在Web用戶控件和Web窗體。

因爲我更改了項目中的所有命名空間,所以我在asmx中進行了修改。 ASMX中有一個Inherits,它與後面的代碼中的類不匹配。不知何故,這導致compilation batching一些(不是全部)usercontrols放入它們自己的臨時程序集中,並且導致組程序集。

0

您使用的是web部署項目嗎?

嘗試刪除此應用程序的asp.net臨時目錄(位於此處:C:\ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files \ yourappname)。在刪除目錄之前,您必須停止此網站的應用程序池。

嘗試將所有輸出合併到一個程序集以查看它是否有任何區別。

..update ..

「合併使用Aspnet_merge.exe與w選項來創建一個單一的組件,用於所有Web UI內容文件。」 http://msdn.microsoft.com/en-us/library/bb397866.aspx

+0

我正在使用nant腳本進行部署(構建它,將bin/ascx/aspx複製到服務器)。而且我已經刪除了臨時文件夾,每次都會重新創建。 – TesterTurnedDeveloper 2010-06-22 01:06:13

+0

你重新啓動了iis嗎? 'iisreset/restart' – 2010-06-22 01:20:09

+0

是的,重新啓動IIS。重新啓動了應用程序池,刪除了臨時程序集。 – TesterTurnedDeveloper 2010-06-22 01:28:27