2012-12-05 16 views
2

,我換了一個按鈕控制,從Linkbutton繼承的命名空間。代碼如下所示:Designer.Cs文件不登記更新命名空間

//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...> 
+0

列出所有已更改的部件(web.config,.aspx)以免浪費時間。 –

+0

@HenkHolterman編輯原始帖子 – Rhs

+0

這是一個桌面應用程序?爲什麼會有一個網絡配置?如果它是一個Web應用程序,您是否嘗試刪除設計器文件的內容,更改ASP代碼並再次保存它們?你有沒有嘗試找到替代? – Trisped

回答

1

你的行爲是:

  1. 您更改類定義
  2. 內的命名空間與您的新的命名空間

你期望什麼是更新的web.config:

  1. Visual Studio將更新aspx.designer。新的命名空間CS文件

如何真的作品:

更新到designer.cs由.aspx文件中的更改觸發。

有 可能的方案來解決這個問題:

  1. 你必須從.aspx頁面中切控制標籤=>保存.aspx頁=>控制代碼粘貼回在.aspx頁面中=>保存.aspx頁

  2. ,或者你手動修改麟e。通過更換命名空間

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

    [編輯]

  3. ,或者您從源切換的.aspx到設計=>保存=>重建=>切換到源

我想說選項3是首選的解決方法。

+0

謝謝。第二種情況是我最終做的。我發現我的錯誤與Mercurial – Rhs

+0

有關。也許你也想嘗試第三種解決方法。 –

0

我有一個常規類程序集VS 2013類似的問題。我右鍵單擊項目節點,然後選擇'屬性'。我選擇了「應用程序」部分,然後將「默認命名空間」更改爲我的新值。重新編譯。問題解決了。 海事組織我們不應該這樣做。我們應該能夠對源代碼進行更改,並期望它們在不更改配置數據的情況下進行。