Mik*_*e T 30 wpf user-controls assemblies repeater .net-2.0
类型"x"在未引用的程序集中定义.您必须添加对程序集"abc123"的引用.
我有一个.NET 2.0 Web应用程序,引用我的程序集'abc123'.该程序集存在于GAC中,我已经验证它是正确的(相同)版本.除了一个.aspx页面之外,其余的应用程序都没有问题.有问题的页面有一个转发器,它将用户控件显示为其"字段"之一.在将类型y的列表绑定到转发器时,我向用户控件传递类型x的列表(y的属性),如下所示:
<uc1:usercontrol id="ucusercontrol " runat="server" myPublicUserControlProperty='<%#Eval("CollectionOfX") %>'/>
Run Code Online (Sandbox Code Playgroud)
在用户控件的属性集上,我将类型x的列表绑定到用户控件中的gridview.
需要注意的一件奇怪的事情是,这个报告在我的开发PC上工作正常,但在我部署之后在任何服务器上都没有.我的电脑是Windows XP,IIS6,VS2005.服务器是Windows Server 2003,IIS6.
我希望我解释得那么好.提前感谢您提供的任何见解.
Aar*_*els 28
我是Mike的同事,我们制定了一个解决方案.
类型X在其程序集中定义,仅在GAC中定义.尽管他的ASP.NET Web应用程序确实有一个引用,但它无法仅为此UserControl从GAC加载.应用程序的其余部分按预期工作.我们通过将程序集的副本放在bin目录中来确认加载失败,一切正常.我们删除了程序集,问题又回来了.
我们的解决方案是手动将条目添加到程序集部分的web.config中,以将ASP.NET指向GAC.
看起来只要您在页面中引用类型(而不是代码隐藏),就需要在web.config文件或page指令中定义的程序集信息.
<assemblies>
<add assembly="MyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=[MyPublicKeyToken]"/>
</assemblies>
Run Code Online (Sandbox Code Playgroud)