Str*_*ior 6 asp.net visual-studio-2008
我有一个ASP.NET Web应用程序项目,它引用了另一个名为ModusCore(或Modus.Core)的项目.到目前为止,我们已经有了各种使用ModusCore的控件,没有任何问题,但最近我创建了一个导致问题的控件.这是代码:
public class PortalLinkNew : WebControl
{
public string Text { get; set; }
public bool AllowPush { get; set; }
public PortalLinkNew()
{
AllowPush = true;
}
public IChannelRequest ChannelRequest { get; set; }
protected override HtmlTextWriterTag TagKey
{
get { return HtmlTextWriterTag.A; }
}
protected override void AddAttributesToRender(HtmlTextWriter writer)
{
try
{
base.AddAttributesToRender(writer);
if (DesignMode || Page == null || !(Page is IPortalPage))
{
return;
}
string href = "/";
if (ChannelRequest != null)
{
var portalPage = (IPortalPage)Page;
href = portalPage.Module.PortalRouter.GetLinkUrl(portalPage, ChannelRequest, AllowPush);
}
writer.AddAttribute(HtmlTextWriterAttribute.Href, href);
}
catch (Exception)
{
}
}
public override void RenderEndTag(HtmlTextWriter writer)
{
writer.Write(Text);
base.RenderEndTag(writer);
}
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码,IPortalPage并且IChannelRequest是在Modus.Core定义的接口.
我的意图是在我的代码中使用此控件,如下所示:
<tnl:PortalLinkNew ID="CancelButton" runat="server" Text="Cancel" OnInit="CancelButton_Init" />
Run Code Online (Sandbox Code Playgroud)
这实际上编译并运行没有问题,但是当我在Visual Studio 2008中编辑页面(源视图)时,我收到以下警告:
生成设计器文件失败:无法加载文件或程序集"Modus.Core,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null"或其依赖项之一.该系统找不到指定的文件.
正如它所说,它不会重新生成设计器文件,这意味着CancelButton在代码隐藏中引用控件的任何尝试都会导致编译器错误.根据我在网上找到的建议,我尝试删除相应的.ascx.designer.cs文件并在该页面上使用"转换为Web应用程序",但它告诉我它无法重建设计器文件,原因与提到的相同以上.
我已经尝试了我能想到的一切:清理解决方案,重新启动Visual Studio,重新启动计算机,删除代码目录并从存储库中提取新内容,删除并重新添加项目和dll引用等.同样的问题发生在我使用的多台计算机上.
如何让VS设计师停止失败?
sch*_*and 18
我有一个非常类似的问题(我还没解决).我遇到问题的应用程序是从"网站项目"转换而来的,我无法摆脱这与它有关的感觉.我在VS 2005上.
现在我可以补充的是
a)"有时"(我还不知道到底是什么时候)"转换为Web应用程序"-trick对我有效(但并非总是如此)
b)"有时"(与上面相同)它有助于切换到设计器视图,更改内容并保存 - >*.designer.cs重新生成
在将"控件"添加到页面后,我通常会尝试几个没有修复顺序的东西,直到"某些东西"起作用.
在互联网上有很多关于这个的噪音,但我找不到它的"真正修复"(还).除了已经提到的以外,我读到的一件事是它可能与(不匹配/不存在)命名空间有关.
当我检查我的应用程序namespace时,*.cs文件中确实没有声明.所以我添加了它们(在*.cs和*.aspx中),并且有一段时间以为它做到了.但遗憾的是,现在我知道事实并非如此......
为@ scherand(a)和(b)失败时添加第三个选项:
c)"有时",这也有效:
<%@ Register... %>条目<%@ Register... %>再次添加[2010年10月13日添加]:
d)"有时",以及:
为此,我使用文本比较工具来备份AS?X文件的备份副本.
我尽量避免添加导致错误的控件直到最后.我也尝试从页面底部添加.但是,我不知道有什么严厉的规定.这是一种直觉感觉.
(有人会想出这个吗?)
| 归档时间: |
|
| 查看次数: |
7968 次 |
| 最近记录: |