WebResource Hell - resource cannot be found
Instead of this.GetType()
, get a type from the assembly that contains the resource.. ie:
typeof(Company.Product.Web.Library.Class1)
Does that work?
Came to the same issue today. The problem seems to be that AssemblyResourceLoader uses the assembly containing the type provided to GetWebResourceUrl
method (first parameter) which in your case is a dynamically created assembly for the master page (.master) and does not contain the resource you are looking for. I assume that your resource file is included in the same assembly as your base master page (.master.cs file) then you could use typeof
to get the Type instance
Page.ClientScript.RegisterClientScriptInclude(
"NavigationScript",
Page.ClientScript.GetWebResourceUrl(
typeof(MyMasterPage),
"CompanyProduct.Library.navigation.js"));
where MyMasterPage is the name of your master page
Looks like it is also possible to use any other type declared in the same assembly where the resource is embedded.
I think you want the full paths to be based on the namespace, not the assembly; So anywhere you have "CompanyProduct.Library.navigation.js", replace it with "Company.Product.Web.Library.navigation.js". Also, there is a method Page.ClientScript.RegisterClientScriptResource() that does what you need in one method (as opposed to using RegisterClientScriptInclude(GetWebResourceUrl()).