我试图在.dll中导出一个控制库,供办公室中的其他开发人员使用。
我最初创建的解决方案如下所示:
解决方案1:
Mri.FmTool引用Mri.Controls。
在Mri.Controls内部,我有一些javascript WebResources。Mri.FmTool似乎很好地阅读了WebResources,当Mri.FmTool web应用程序运行时,我所有的javascript web资源都会出现。
所以,现在我试图创建一个简单的解决方案来使用Mri.FmTool。
解决方案2:
我使用了最新的Mri.Controls.dll,并将其作为Mri.ConsumerTest应用程序的参考。来自Mri.Controls的所有控件似乎都在Mri.ConsumerTest内部工作。Intellisense正在工作,它编译,没有问题。
但是,在运行它时,大多数WebResource.axd文件都是空的,只是空的。一个WebResource.axd文件不是空的,它只是说“找不到这个资源”。
以下是properties窗口中javascript文件的属性:
构建行动:“嵌入式资源”
复制到输出目录:“始终复制”
我错过了哪一步?
发布于 2009-04-13 15:43:46
我注意到我的WebResource CSS文件加载正常,但是WebResource没有在新的解决方案中加载。
所以,我不再使用System.Web.UI.__ClientScriptManager来注册WebResources,而是改用了System.Web.UI.__ScriptManager.现在,文件是从ScriptManager.axd (而不是WebResource.axd)出来的。这似乎解决了这个问题。
修复前的旧代码:
public class ScriptManagerExtension : System.Web.UI.ScriptManager
{
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
Page.ClientScript.RegisterClientScriptResource(this, typeof(ScriptManagerExtension), "Mri.Controls.Resources.Scripts.Libraries.jQuery.js");
}
}上面的代码片段使用System.Web.UI.ClientScriptManager
修正后的新代码:
public class ScriptManagerExtension : System.Web.UI.ScriptManager
{
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
RegisterClientScriptResource(this, typeof(ScriptManagerExtension), "Mri.Controls.Resources.Scripts.Libraries.jQuery.js");
}
}上面的代码片段使用System.Web.UI.ScriptManager
据我理解,ClientScriptManager是在2.0中引入的。我相信ScriptManager是管理脚本的新的改进的3.5方式,它具有更多的功能。
/shrug
发布于 2009-04-08 19:06:46
您可能缺少了assembly:WebResource("YourNameSpace.YourFile.js","text/javascript")属性。WebResource.axd需要这个属性。您可以查看这 KB文章以获得有关此事的其他信息。
发布于 2009-04-08 16:22:16
资源是否设置为DLL的一部分?
打开解决方案Mri.Controls &查看javascript资源文件的属性。
我认为这就是问题所在。
https://stackoverflow.com/questions/730466
复制相似问题