Wir versuchen, unsere DLLs für die Bereitstellung in ILMerge zu verschmelzen. Fast alles scheint gut zu funktionieren. Wir haben ein paar Web-Steuerelemente, die ClientScript.RegisterClientScriptResource
verwenden, und diese sind 404-ing nach der Zusammenführung (Diese funktionierten vor der Zusammenführung).ILMerge und Web-Ressourcen
Zum Beispiel eine unserer Kontrollen aussehen würde
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");
}
}
}
würde es im Projekt WebControls befinden, Montage Company.WebControls. Darunter wären ControlA.cs und ControlA.js. ControlA.js ist als eine eingebettete Ressource markiert. In den AssemblyInfo.cs I umfassen die folgenden:
[assembly: System.Web.UI.WebResource("Company.WebControls.ControlA.js", "application/x-javascript")]
Danach wird in CompanyA.dll verschmolzen, was ist der richtige Weg, um diese Web-Ressource zu verweisen? Die ILMerge-Befehlszeile lautet wie folgt (aus dem bin-Verzeichnis nach dem Build): "C:\Program Files\Microsoft\ILMerge\ILMerge.exe" /keyfile:../../CompanySK.snk /wildcards:True /copyattrs:True /out:Company.dll Company.*.dll