Мы пытаемся объединить наши DLL в одну для развертывания, таким образом, ILMerge. Кажется, почти все работает отлично. У нас есть пара веб-элементов управления, которые используют ClientScript.RegisterClientScriptResource
, и они выполняются после слияния (они работали до слияния).
Например, один из наших элементов управления будет выглядеть как
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");
}
}
}
Он будет находиться в Project WebControls, сборка Company.WebControls. Под ним будут ControlA.cs и ControlA.js. ControlA.js помечен как встроенный ресурс. В AssemblyInfo.cs я включаю следующее:
[assembly: System.Web.UI.WebResource("Company.WebControls.ControlA.js", "application/x-javascript")]
После того, как это объединено с CompanyA.dll, как правильно ссылаться на этот веб-ресурс? Командная строка ILMerge выглядит следующим образом (из каталога bin после сборки): "C:\Program Files\Microsoft\ILMerge\ILMerge.exe" /keyfile:../../CompanySK.snk /wildcards:True /copyattrs:True /out:Company.dll Company.*.dll