プリコンパイル済みのASP.NET 2.0サイトでコンパイルエラーCS0433
-
22-07-2019 - |
質問
デバッガーを起動してサイトをデバッグするとき、このエラーが頻繁に発生します。 Telerikコントロールを使用していますが、通常、エラーはタブストリップにあります。ここに私が今見ているエラーの例を示します:
Compiler Error Message: CS0433: The type 'ASP.controls_motorvehiclegeneral_ascx' exists in both 'c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\App_Web_6wlqh1iy.dll' and 'c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\App_Web_ro_sgchs.dll'
Source Error:
Line 48: </telerik:RadTabStrip>
Line 49: <telerik:RadMultiPage ID="RadMultiPageControls" Runat="server" SelectedIndex="0">
Line 50: <telerik:RadPageView ID="PageGeneral" runat="server"><uc1:General ID="GeneralControl" runat="server" /></telerik:RadPageView>
Line 51: <telerik:RadPageView ID="PageVehicle" runat="server"><uc1:VehicleList ID="VehicleList" runat="server" /></telerik:RadPageView>
Line 52: <telerik:RadPageView ID="PagePerson" runat="server"><uc1:PersonList ID="PersonList" runat="server" /></telerik:RadPageView>
最も気になるのは、F5キーを押し続けると、ページが更新され、正常に機能することです。これを行うにはいくつかの更新が必要な場合もあれば、非常に迅速に更新される場合もあります。このエラーのある人のほとんどがVS2005からWebアプリケーションにアップグレードしているため、ネット上で解決策を見つけることができませんでしたので、修正は<!> quot; app_codeディレクトリを削除し、CodeFileを変更するようです= CodeBehind =に。しかし、CodeBehindは古く、もはや使用されていません。
この例では、[全般]タブでエラーが発生しますが、発生したときにユーザーコントロールのいずれかで発生する可能性があります。
プリコンパイルされたページでこれを見た人はいますか? VS2008 SP1を使用しています。
これに関連して見た他の効果は、データソースを使用してGridViewをセットアップし、データソースが変更されたが、ページが他のいくつかの操作まで更新されず、すべてのデータが一度に入力される場合です...これにより、何らかのキャッシュの問題、またはコンパイル時、タイムアウトなどが発生していると思うようになります...
site.masterページを使用しており、@ Pageおよび@Masterディレクティブをチェックしています...引数のために、使用しているコンパイラオプションを以下に示します...
C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE> "c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\csc.exe" /t:library /utf8output /R:"c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\assembly\dl3\6614ff9a\005164fc_423cc801\PetersDatePackage.DLL" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.IdentityModel\3.0.0.0__b77a5c561934e089\System.IdentityModel.dll" /R:"c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorlib.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\Microsoft.ReportViewer.Common\9.0.0.0__b03f5f7f11d50a3a\Microsoft.ReportViewer.Common.dll" /R:"C:\WINDOWS\assembly\GAC_32\System.EnterpriseServices\2.0.0.0__b03f5f7f11d50a3a\System.EnterpriseServices.dll" /R:"c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\App_Web_0-em44qa.dll" /R:"c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\App_Web_6wlqh1iy.dll" /R:"c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\App_Web_ro_sgchs.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\Microsoft.Build.Utilities\2.0.0.0__b03f5f7f11d50a3a\Microsoft.Build.Utilities.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.ServiceModel\3.0.0.0__b77a5c561934e089\System.ServiceModel.dll" /R:"c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\assembly\dl3\6fe979bb\0056bc44_4b94c701\Microsoft.Practices.EnterpriseLibrary.Common.DLL" /R:"C:\WINDOWS\assembly\GAC_32\System.Web\2.0.0.0__b03f5f7f11d50a3a\System.Web.dll" /R:"c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\assembly\dl3\ad70f8ed\0010f920_4b94c701\Microsoft.Practices.EnterpriseLibrary.Data.DLL" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.ServiceModel.Web\3.5.0.0__31bf3856ad364e35\System.ServiceModel.Web.dll" /R:"c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\assembly\dl3\d61e8194\009ae0bd_854ec901\Telerik.Web.UI.DLL" /R:"c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\assembly\dl3\98ba2ae7\211fb135_e674c901\CoreAPI.DLL" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.Web.Extensions\1.0.61025.0__31bf3856ad364e35\System.Web.Extensions.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.Management\2.0.0.0__b03f5f7f11d50a3a\System.Management.dll" /R:"c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\assembly\dl3\62fa267e\9888875e_bb5cc901\AjaxControlToolkit.DLL" /R:"C:\WINDOWS\assembly\GAC_MSIL\Microsoft.Build.Framework\2.0.0.0__b03f5f7f11d50a3a\Microsoft.Build.Framework.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.Drawing\2.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll" /R:"c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\App_Code.nufffrfb.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.Web.Services\2.0.0.0__b03f5f7f11d50a3a\System.Web.Services.dll" /R:"c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\assembly\dl3\52f6447d\f90fd1c8_b475c901\StatisticsAPI.DLL" /R:"C:\WINDOWS\assembly\GAC_MSIL\System\2.0.0.0__b77a5c561934e089\System.dll" /R:"c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\assembly\dl3\955f38e7\982cdc0f_bc5cc901\Validators.DLL" /R:"C:\WINDOWS\assembly\GAC_MSIL\Microsoft.ReportViewer.WebForms\9.0.0.0__b03f5f7f11d50a3a\Microsoft.ReportViewer.WebForms.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.Runtime.Serialization\3.0.0.0__b77a5c561934e089\System.Runtime.Serialization.dll" /R:"c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\App_Web_nv7t8gs_.dll" /R:"C:\WINDOWS\assembly\GAC_32\System.Data\2.0.0.0__b77a5c561934e089\System.Data.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.Configuration\2.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.Design\2.0.0.0__b03f5f7f11d50a3a\System.Design.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.WorkflowServices\3.5.0.0__31bf3856ad364e35\System.WorkflowServices.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.Web.Mobile\2.0.0.0__b03f5f7f11d50a3a\System.Web.Mobile.dll" /R:"c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\assembly\dl3\a5daf5e0\0071b5e7_909cc701\Microsoft.Practices.ObjectBuilder.DLL" /R:"C:\WINDOWS\assembly\GAC_MSIL\Microsoft.ReportViewer.ProcessingObjectModel\9.0.0.0__b03f5f7f11d50a3a\Microsoft.ReportViewer.ProcessingObjectModel.dll" /R:"c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\App_Web_atcckswk.dll" /R:"C:\WINDOWS\assembly\GAC_MSIL\System.Xml\2.0.0.0__b77a5c561934e089\System.Xml.dll" /out:"c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\App_Web_zva2jsmk.dll" /D:DEBUG /debug+ /optimize- /win32res:"c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\zva2jsmk.res" /nowarn:1659;1699;1701 /d:DBCONVERTPUBLIC;CRYSTALSUPPORT "c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\App_Web_zva2jsmk.0.cs" "c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\App_Web_zva2jsmk.1.cs" "c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\statisticsweb\30c716d3\eebad209\App_Web_zva2jsmk.2.cs"
誰でも私が見始めることができるアイデアがありますか?
解決
上記のようにCassiniインスタンスを削除してもうまくいきませんでした。 ScottGuがこの問題について投稿
バッチの設定= <!> quot; false <!> quot; web.configのコンパイルセクションの属性が機能しました。
<configuration>
<system.web>
<compilation debug="false" batch="false"></compilation>
</system.web>
</configuration>
これはASP.NETに動的に指示します 個々の.aspx / .ascxファイルをコンパイルします 別々のアセンブリに。これは回避します 循環参照の問題 例外をトリガーします。
他のヒント
私にとっては、IDEを閉じ、Webサイト(IISまたはCassini)を閉じ、一時的なasp.netファイルをすべて削除し、IDEを起動して、完全なコンパイルを行うとうまくいきます。
IISでは、コマンドプロンプトを開いて iisreset
を入力して再起動する必要がありますが、Visual Studio Webサーバー(Cassini)でビルドを使用している場合は、問題は解決しません。実行中のすべてのCassiniインスタンスを終了するには、(大文字と小文字が区別されるため正確にこのようになります): taskkill / f / im&quot; WebDev.WebServer.exe&quot;
を押してEnterキーを押します。その後、次のメッセージが表示されます。 SUCCESS:The Process&quot; WebDev.WebServer.EXE&quot; PID&lt; some#&gt;終了しました。
VS2008とWEBアプリケーション(WEBサイトではない)がある場合、App_Codeという名前のディレクトリを作成することはできません(すべてのファイルを削除し、ルートフォルダーに移動する必要があります)。そのフォルダーをプロジェクトから削除/除外します( App_Code)。 App_Codeにあるすべてのファイルは、DEBUG / Publish中にコンパイルされます。 -これでCS0433の問題が解決しました。
最近、そのエラーを修正しました。原因は、プロジェクト内で複数回宣言されているファイルまたはクラスがあるためです。私の場合、
error CS0433: The type 'usercontrol_ucManageNews' exists in both
'c:\Users\DangLe\AppData\Local\Temp\Temporary ASP.NET Files\working\ed64f624\95e2038d\App_Web_kc2c2twy.dll' and 'c:\Users\DangLe\AppData\Local\Temp\Temporary ASP.NET Files\working\ed64f624\95e2038d\App_Web_0ywfoitp.dll'
私のプロジェクトにはファイルucManageNews.ascxを含む2つのフォルダーがあるため
原因は、参照している他のDLLが指定されたアセンブリの古い/新しいバージョンを参照している可能性があることです。そのため、アプリのさまざまな部分がアセンブリのさまざまなバージョンを参照しています。私もこのような問題に遭遇しました。それを解決するために、アプリに新しいバージョンを使用するように強制しました:
新しいバージョンを指すようにweb.configのすべての参照を変更しました。私の場合、問題を引き起こしていたのはSystem.Web.Extensionsアセンブリでした。 すべてを1.0.60125.0から3.5.0.0に変更しました
次に、これらの行をweb.configに追加しました。これは基本的に、アプリケーションに「転送」するよう指示します。古いバージョンのアセンブリ、新しいアセンブリへのすべての参照:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="bin;sitefinity\admin\bin" />
<dependentAssembly>
<assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Telerik.Security" publicKeyToken="dfeaee0e3978ac79" />
<bindingRedirect oldVersion="3.2.1598.2" newVersion="3.5.1747.2" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Telerik.Cms.Web.UI" publicKeyToken="dfeaee0e3978ac79" />
<bindingRedirect oldVersion="3.2.1598.2" newVersion="3.5.1747.2" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Telerik.Web.UI" publicKeyToken="121fae78165ba3d4" />
<bindingRedirect oldVersion="2008.1.515.20" newVersion="2008.2.1001.20" />
</dependentAssembly>
</assemblyBinding>
</runtime>
私はこの解決策を思いつきませんでしたが、どこか覚えていないことがわかりました。ただし、これがなぜ起こるのかについての説明を見たことがないと思います!
この問題が発生しました。あるプロジェクトから別のプロジェクトにファイルを誤ってドラッグアンドドロップすると、複製が作成されたことがわかりました。ファイルがPropertiesフォルダー内に隠されていたので、問題を見つけるのに少し時間がかかりました(私は決して調べません)。
いずれにせよ、問題の解決に役立ったのは、エラーを投げていたファイルに行き、エラーのある行をrクリックして「定義に行く」ことでした。定義の中にあるので、どの物理ファイルを見ているかを見ることができます。それが本来あるべきではない場合、あなたはあなたの問題を見つけました。
これは些細なことですが、1時間ほど無駄になったので、この情報が誰にとっても役立つことを願っています。
このバグを修正するには、かなり簡単ですが、めったに使用されない宣言がいくつか必要です(ハードな部分は正しいドキュメントを掘り下げました;)。
ECMA-334 、セクション、 16.3 &quot; 外部エイリアスディレクティブ&quot;
を参照&quot; your&quot;を制御する場合ソースと別のアセンブリにリンクしている「彼ら」バイナリ、まだ名前空間/タイプ指定子を変更することはできません(または変更したくない:)(たとえば、 System を宣言する BOTH )。 CLR / DLRのすべてのベータ/アルファ/バージョンの更新により、私は実際にかなり最近これに遭遇しました。MSは公開された名前空間で多くの時間を費やしました。
アセンブリ「their」をインポートすると、通常、コンパイラはそれをグローバル(予約済み)名前空間に設定します。 MSVCでは、アセンブリ参照のプロパティに移動し、「エイリアス&quot;」という場所に移動してから、グローバル以外の新しい名前 other を指定できます。または実際にはいくつかの名前。
&quot; global2 &quot;という想像上の名前を使用するとしましょう。
ソースファイルに移動し、 TOP で名前空間宣言の前に配置します。
extern alias global2;
using global2::System;
その後、コードで&quot; Int32&quot;のようなglobal2の型を使用できます。またはどちらを使用しても、名前を変更できます;
extern alias global2;
using global2::System;
using orig = System;
btw、 CodeBehind
は古くなく、使用されていません!
CodeBehind =
はWebアプリケーション( .Designer.cs
ファイルを含む)のページ用で、 CodeFile =
はWebサイトのページ用( .Designer.cs
ファイルなしで動的にコンパイルされたアセンブリ)
今日、Web USer Controlでこの問題が発生しましたが、CodeBehind =&quot; ...&quot;の変更を発見しました。 to Src =&quot; ...&quot;エラーの原因です。 [リンク] http://stevenoderayi.blogspot.com/2011/04/resolved-cs0433-type-user-control.html [/ link]