2

Visual Studios Premium 2012 で問題が発生しています。

最近、から継承するボタン コントロールの名前空間を変更しましたLinkbutton。コードは次のようになります。

//namespace MyOldNameSpace
namespace MyNewNameSpace
{
    public class myButton : LinkButton
    {
        //some stuff here
    }
}

この変更に合わせて、このコードへのすべての参照を更新しました。でも...

designer.cs ファイルは、新しく更新された名前空間でのボタンの生成を拒否します。たとえば、関数は私の designer.cs ファイルでは次のようになります。

protected global::MyOldNameSpace.myButton myButton1

すべてをコンパイルして機能させるには、コードを調べて、designer.cs ファイルの名前空間を更新する必要があります。機能上の問題はありません。また、新しい変更に合わせて web.config を変更しました。

私は次のことを試しました:

  • ビジュアル スタジオの閉鎖と再開
  • ~/../appdata/ に入り、いくつかのファイルを削除します [ブログでこの解決策を見つけました]

しかし、これはどれもうまくいきませんでした。

前もって感謝します

私が行ったいくつかの変更を編集します。

web.config で

<add tagPrefix="abc" namespace="MyNewNameSpace" assembly="MyNewNameSpace"

.aspx ページで

<abc:myButton runat="server" onclick=...etc...>
4

2 に答える 2

1

あなたの行動は:

  1. クラス定義内の名前空間を変更します
  2. 新しい名前空間で web.config を更新します

あなたが期待するものは次のとおりです。

  1. Visual Studio は aspx.designer.cs ファイルを新しい名前空間で更新します。

それが実際にどのように機能するか:

designer.cs への更新は、.aspx ファイルの変更によってトリガーされます。

問題を解決するには、 2 3のシナリオが考えられます。

  1. .aspx ページからコントロール タグを切り取る => .aspx ページを保存する => コントロール タグを .aspx ページ内に貼り付ける => .aspx ページを保存する

  2. または、名前空間を置き換えて手動で行を変更します

    protected global::MyOldNameSpace.myButton mButton;//old line
    protected global::MyNewNameSpace.myButton mButton;//new line
    

    [編集]

  3. または、.aspx をソースからデザインに切り替える => 保存 => 再構築 => ソースに切り替える

オプション番号3が推奨される回避策だと思います。

于 2012-12-05T20:40:10.170 に答える
0

通常のクラス アセンブリ VS 2013 でも同様の問題がありました。プロジェクト ノードを右クリックし、[プロパティ] を選択しました。「アプリケーション」セクションを選択し、「デフォルト名前空間」を新しい値に変更しました。再コンパイル。問題が解決しました。IMO、そうする必要はありません。ソースコードに変更を加えることができ、構成データを変更せずにそれらが実行されることを期待できます。

于 2015-01-11T13:11:53.880 に答える