什么填充ScriptResourceMapping()

枕上从妨一夜睡,灯前读尽十年诗。这篇文章主要讲述什么填充ScriptResourceMapping?相关的知识,希望能为你提供帮助。
【什么填充ScriptResourceMapping()】asp.net如何/在哪里填充System.Web.UI.ScriptManager.ScriptResourceMapping?当我调试一个未触及的空ASP.Net webforms项目(如果重要的是针对.NET 4.6.1)并在Application_Start(object sender, EventArgs e)的开头设置断点时,已经有15个定义:

什么填充ScriptResourceMapping()

文章图片

调用堆栈没有告诉我在此之前运行了什么代码(只是说[外部代码])并且整个解决方案中引用ScriptManager的唯一位置是在BundleConfig#RegisterBundles()中,这是在我的断点之后调用并且只添加单个定义。
我问的原因是我最近被带到另一个项目的故障排除,我发现由于某种原因,它有一个几乎空的ScriptResourceMapping,我最终从模板项目的调试器中复制值,并在代码中手动添加它们项目失灵。我只是想更好地了解出了什么问题。
同样,这个问题是关于一个全新的webform项目如何填充ScriptResourceMappings。这是项目的packages.conf。请注意,有一些ScriptManager包。也许这些包中的东西将定义加载到ScriptManager中。
< ?xml version="1.0" encoding="utf-8"?> < packages> < package id="Antlr" version="3.4.1.9004" targetFramework="net461" /> < package id="AspNet.ScriptManager.bootstrap" version="3.0.0" targetFramework="net461" /> < package id="AspNet.ScriptManager.jQuery" version="1.10.2" targetFramework="net461" /> < package id="bootstrap" version="3.0.0" targetFramework="net461" /> < package id="jQuery" version="1.10.2" targetFramework="net461" /> < package id="Microsoft.ApplicationInsights" version="2.2.0" targetFramework="net461" /> < package id="Microsoft.ApplicationInsights.Agent.Intercept" version="2.0.6" targetFramework="net461" /> < package id="Microsoft.ApplicationInsights.DependencyCollector" version="2.2.0" targetFramework="net461" /> < package id="Microsoft.ApplicationInsights.PerfCounterCollector" version="2.2.0" targetFramework="net461" /> < package id="Microsoft.ApplicationInsights.Web" version="2.2.0" targetFramework="net461" /> < package id="Microsoft.ApplicationInsights.WindowsServer" version="2.2.0" targetFramework="net461" /> < package id="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel" version="2.2.0" targetFramework="net461" /> < package id="Microsoft.AspNet.FriendlyUrls" version="1.0.2" targetFramework="net461" /> < package id="Microsoft.AspNet.FriendlyUrls.Core" version="1.0.2" targetFramework="net461" /> < package id="Microsoft.AspNet.ScriptManager.MSAjax" version="5.0.0" targetFramework="net461" /> < package id="Microsoft.AspNet.ScriptManager.WebForms" version="5.0.0" targetFramework="net461" /> < package id="Microsoft.AspNet.Web.Optimization" version="1.1.3" targetFramework="net461" /> < package id="Microsoft.AspNet.Web.Optimization.WebForms" version="1.1.3" targetFramework="net461" /> < package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.7" targetFramework="net461" /> < package id="Microsoft.Net.Compilers" version="2.1.0" targetFramework="net461" developmentDependency="true" /> < package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net461" /> < package id="Modernizr" version="2.6.2" targetFramework="net461" /> < package id="Newtonsoft.Json" version="6.0.4" targetFramework="net461" /> < package id="Respond" version="1.2.0" targetFramework="net461" /> < package id="WebGrease" version="1.5.2" targetFramework="net461" /> < /packages>

答案ScriptResourceMapping类(System.Web.UI)看起来像死路一条。
ScriptManager类看起来更有前途。它有一个ScriptResourceMapping财产。下面的链接显示了如何创建可由ScriptManager对象引用的ScriptResourceDefinition对象。
“将以下代码添加到Application_Start事件中的Global.asax文件中。”
ScriptResourceDefinition myScriptResDef = new ScriptResourceDefinition(); myScriptResDef.Path = "~/Scripts/jquery-1.4.2.min.js"; myScriptResDef.DebugPath = "~/Scripts/jquery-1.4.2.js"; myScriptResDef.CdnPath = "http://ajax.microsoft.com/ajax/jQuery/jquery-1.4.2.min.js"; myScriptResDef.CdnDebugPath = "http://ajax.microsoft.com/ajax/jQuery/jquery-1.4.2.js"; ScriptManager.ScriptResourceMapping.AddDefinition("jquery", null, myScriptResDef);

然后有关于将scripts元素添加到脚本管理器的更多信息。
https://msdn.microsoft.com/en-us/library/system.web.ui.scriptmanager.scriptresourcemapping(v=vs.110).aspx
我猜测.NET一旦看到包文件就会以类似的方式处理这个问题,但我(仍)不确切知道何时何地。 (在构建?)Hth。

    推荐阅读