找不到它的一个依赖项?

dw2003 2005-06-04 03:23:19
web.config
===========================
<configuration>
<system.web>
<compilation>
<assemblies>
<add assembly="TemplateControlSamples"/>
</assemblies>
</compilation>
</system.web>
</configuration>

c1.aspx
==============================
<%@ Page Language="C#" Debug="true" %>
<%@ Register TagPrefix="TemplateControlSamples" Namespace="TemplateControlSamples" Assembly="TemplateControlSamples" %>
<script runat=server language=c#>
void Page_Load() {
DataBind();
}
</script>

<html>

<body>

<form method="POST" runat="server">

Non Templated version:

<TemplateControlSamples:Template1 Message="Hello World!" runat=server/>

<hr>

Templated version:

<TemplateControlSamples:Template1 Message="Hello World!" runat=server>

<MessageTemplate>

<b><i><u>
<%# Container.Message %>
</u></i></b>

</MessageTemplate>

</TemplateControlSamples:Template1>

</form>

</body>

</html>

c1.asp.cs
================================
using System;
using System.Data;
using System.Web.Services;
using System.Drawing;
using System.Web;
using System.Web.UI;
using System.Text;

namespace TemplateControlSamples {

public class TemplateItem : Control, INamingContainer {
private String _message = null;

public TemplateItem(String message) {
_message = message;
}

public String Message {

get {
return _message;
}
set {
_message = value;
}
}
}

[
ParseChildren(true)
]
public class Template1 : Control, INamingContainer {

private ITemplate _messageTemplate = null;
private String _message = null;

public String Message {

get {
return _message;
}
set {
_message = value;
}
}

[
PersistenceMode(PersistenceMode.InnerProperty),
TemplateContainer(typeof(TemplateItem))
]
public ITemplate MessageTemplate {
get {
return _messageTemplate;
}
set {
_messageTemplate = value;
}
}

public override void DataBind() {
EnsureChildControls();
base.DataBind();
}


protected override void CreateChildControls() {


if (MessageTemplate != null) {
Controls.Clear();
TemplateItem i = new TemplateItem(this.Message);
MessageTemplate.InstantiateIn(i);
Controls.Add(i);
}
else {
this.Controls.Add(new LiteralControl(this.Message));
}
}
}
}

我把文件c1.asp.cs编译放到bin文件夹里,运行c1.aspx时,但提示以下错误.
分析器错误信息: 找不到文件或程序集名称“TemplateControlSamples.TemplateItem”,或找不到它的一个依赖项。

源错误:


行 3: <compilation>
行 4: <assemblies>
行 5: <add assembly="TemplateControlSamples.TemplateItem"/>
行 6: </assemblies>
行 7: </compilation>


源文件: D:\ASP.NET\demo\wc\web.config 行: 5

还有就是这个
<assemblies>
<add assembly="TemplateControlSamples"/>
</assemblies>
是怎样用的.
不是直接用<%@ Import Namespace="HelloWorld" %>调用bin里面的dll就可以的吗?
...全文
155 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
dw2003 2005-06-04
  • 打赏
  • 举报
回复
通过了,多谢 LaoDai_Net(老代.Net『学无止境』)
我想理清一点问题就是
第一:
你前面所说:使用 服务器控件,只需要在头部 注册
<%@ Register TagPrefix="TemplateControlSamples" Namespace="TemplateControlSamples" Assembly="TemplateControlSamples" %>
你所说的服务器控件应该改为用户自定义控件吧?还是我理解上有出入?
第二:
编译后的dll文件是否不能手工改名的,因为我之前编译成c1.asp.dll运行通过了,但这把文件名改成TemplateControlSamples.dll,而注册语句改成:<%@ Register TagPrefix="TemplateControlSamples" Namespace="TemplateControlSamples" Assembly="TemplateControlSamples" %>就出错了,说是:找到的名为“TemplateControlSamples”的程序集清单定义与程序集引用不匹配。是否文件在编译时就把文件名写入文件内,所以就不能手工直接修改了.
第三:
就是关于web.config中
<configuration>
<system.web>
<compilation>
<assemblies>
<add assembly="DataObj"/>//这一块是怎样用的?是否要把所有bin中的类都写入,它直到什么作用?
</assemblies>
</compilation>
</system.web>
</configuration>



老戴12345654 2005-06-04
  • 打赏
  • 举报
回复
<%@ Register TagPrefix="TemplateControlSamples" Namespace="TemplateControlSamples" Assembly="c1.asp" %>
dw2003 2005-06-04
  • 打赏
  • 举报
回复
你的意思是改成这样吗?
<%@ Register TagPrefix="TemplateControlSamples" Namespace="TemplateControlSamples" Assembly="c1.asp.dll" %>

web.config改成
========================
<configuration>
<system.web>
</system.web>
</configuration>

但还是出错:
分析器错误信息: 找不到文件或程序集名称“c1.asp.dll”,或找不到它的一个依赖项。

源错误:


行 1: <%@ Page Language="C#" Debug="true" %>
行 2: <%@ Register TagPrefix="TemplateControlSamples" Namespace="TemplateControlSamples" Assembly="c1.asp.dll" %>
行 3: <script runat=server language=c#>
行 4: void Page_Load() {


源文件: D:\ASP.NET\demo\wc\c1.aspx 行: 2

老戴12345654 2005-06-04
  • 打赏
  • 举报
回复
把文件c1.asp.cs编译放到bin文件夹里 ,把 Assembly="TemplateControlSamples" %> 的 改成 你编译c1.ASPX.CS的文件名 或把它编译成 TemplateControlSamples.DLL
dw2003 2005-06-04
  • 打赏
  • 举报
回复
删除了还是出现错误:

分析器错误信息: 找不到文件或程序集名称“TemplateControlSamples”,或找不到它的一个依赖项。

源错误:


行 1: <%@ Page Language="C#" Debug="true" %>
行 2: <%@ Register TagPrefix="TemplateControlSamples" Namespace="TemplateControlSamples" Assembly="TemplateControlSamples" %>
行 3: <script runat=server language=c#>
行 4: void Page_Load() {


源文件: D:\ASP.NET\demo\wc\c1.aspx 行: 2
老戴12345654 2005-06-04
  • 打赏
  • 举报
回复
把 <compilation>
<assemblies>
<add assembly="TemplateControlSamples"/>
</assemblies>
</compilation>
删除就可以了

使用 服务器控件,只需要在头部 注册
<%@ Register TagPrefix="TemplateControlSamples" Namespace="TemplateControlSamples" Assembly="TemplateControlSamples" %>

在aspx文件里写 <TemplateControlSamples:TemplateItem Message="Hello World!" runat=server>就可以了

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧