2010-12-13 8 views
0

UserControlAはプロジェクトに参加したときに既に開発されています。それは私がMyProjectWebと呼ぶプロジェクトにあり、名前空間はMyProjectWeb.Commonです。別のCSファイルでユーザーコントロールにアクセスすることはできません

namespace MyProjectWeb.Common 
{ 
    public partial class UserControlA : System.Web.UI.UserControl 
    { 

... 

このUserControl1にアクセスするクラスファイルを含む別のWorkFlowManagerプロジェクトがあります。

MyProjectWeb.Common.UserControlA myUserControlA = (MyProjectWeb.Common.UserControlA)WizardControl.FindControl("TabContainer5$tpSomething$UserControlID"); 

注WorkFlowManagerとMyProjectWebは同じ溶液中にあります。

これは完全に正常です。そして今、UserControlBという別のUserControlを作成したいと思います。

私は全く同じことに従った。

namespace MyProjectWeb.Common 
{ 
    public partial class UserControlB : System.Web.UI.UserControl 
    { 

しかし、私の驚きに、私はWorkFlowManagerで同じコードファイルにUserControlBのインスタンスを作成することはできません。 MyProjectWeb.Common名前空間にはUserControlBも含まれていません。私は明らかに取得コンパイルすると
The type or namespace name 'UserControlB' does not exist in the namespace 'MyProjectWeb.Common' (are you missing an assembly reference?)

はなぜWorkFlowManager CSファイルから同じ名前空間にあるUserControlAなくUserControlBを参照することができるということです取得しますか? MyProjectWeb内の任意の場所にあるMyProjectWeb.Common名前空間にアクセスすると、両方のユーザーコントロールが表示されます。どこでエラーを探す?

私が何を言っている以上のことは私にはかなり十分に教えてくれない、私は確かに知っているプロジェクトを見ていると思いますASP .NET 2.0

答えて

1

それはWorkFlowManagerプロジェクトはMyProjectWeb DLLを参照する方法に依存します。両方のプロジェクトが同じソリューションにある場合は、プロジェクト参照であったはずですが、検証する必要があります。 DLLファイルが参照されている場合は、参照先のファイルがどこに格納されているかを確認する必要があります。WorkFlowManagerプロジェクトはMyProjectWeb dllのプライベートコピーを参照していますが、MyProjectWebを再構築すると明らかに更新されません。

+0

あなたの言ったように、WorkFlowManagerは古いdllファイルを参照しています。 :)しかし、私の問題は、Webプロジェクトはdllファイルを作成しないということですか?はいの場合、最新の更新されたdllファイルはどこにありますか? –

+0

@Ranhiru、Webアプリケーションプロジェクトはdllファイルを作成します。これらのファイルは、Webプロジェクトのルートディレクトリのbinディレクトリにあります。 – VinayC

+0

Thanxはたくさんの仲間:) 'WorkFlowManager.csproj'ファイルに間違ったdllファイルへの参照がありました。 VS 2005から参照を削除し、正しいDLLを再追加するだけで、同じDLLを参照し続けることができました!手動でcsprojファイルを編集する必要がありました。高尚なヒープ! –

1

でVisual Studio 2005を使用しています。

クイックアイデア:

  • UserControlB.csは右のプロジェクトに実際にあることを確認します。
  • ビルドの種類にUserControlB.csが「コンパイル」としてマークされていることを確認します。
  • UserControlBが実際には「B」でないことを確認します。部分的なので、スペルミスが原因でそれらが結合する可能性があります。
  • これらのユーザーコントロールは「部分的」で、他の部分もコピーしましたか?
  • Webプロジェクトにエラーがないことを確認してください。プロジェクトが正しく構築されていない可能性があります。また、古いアセンブリが原因でエラーが発生している可能性があります。
  • クリーン+リビルド。 binおよびobjディレクトリを手動で削除します。
関連する問題