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 从 Source 切换到 Design => Save => Rebuild => Switch to Source

我想说第三个选项是首选的解决方法。

于 2012-12-05T20:40:10.170 回答
0

我在常规类程序集 VS 2013 中遇到了类似的问题。我右键单击项目节点,然后选择“属性”。我选择了“应用程序”部分,然后将“默认命名空间”更改为我的新值。重新编译。问题解决了。IMO 我们不应该这样做。我们应该能够对源代码进行更改,并期望在不更改配置数据的情况下进行更改。

于 2015-01-11T13:11:53.880 回答