Nous essayons de fusionner nos DLL en une pour le déploiement, donc ILMerge. Presque tout semble fonctionner très bien. Nous avons quelques contrôles Web qui utilisent ClientScript.RegisterClientScriptResource
et ceux-ci sont 404-ing après la fusion (Ceux-ci ont fonctionné avant la fusion).ILMerge et les ressources Web
Par exemple, un de nos contrôles ressemblerait
namespace Company.WebControls
{
public class ControlA: CompositeControl, INamingContainer
{
protected override void OnPreRender(EventArgs e)
{
base.OnPreRender(e);
this.Page.ClientScript.RegisterClientScriptResource(typeof(ControlA), "Company.WebControls.ControlA.js");
}
}
}
Il serait situé dans le projet WebControls, Company.WebControls de montage. En dessous se trouvent ControlA.cs et ControlA.js. ControlA.js est marqué comme une ressource incorporée. Dans les AssemblyInfo.cs I comprennent les suivants:
[assembly: System.Web.UI.WebResource("Company.WebControls.ControlA.js", "application/x-javascript")]
Après cela est fusionné dans CompanyA.dll, quelle est la bonne façon de faire référence à cette ressource web? La ligne de commande ILMerge est la suivante (à partir du répertoire bin après la construction): "C:\Program Files\Microsoft\ILMerge\ILMerge.exe" /keyfile:../../CompanySK.snk /wildcards:True /copyattrs:True /out:Company.dll Company.*.dll