私たちは、DLL を 1 つにマージして展開しようとしています。つまり、ILMerge です。ほとんどすべてがうまく機能しているようです。使用する Web コントロールがいくつかClientScript.RegisterClientScriptResource
あり、これらはマージ後に 404-ing になります (これらはマージ前に機能していました)。
たとえば、コントロールの 1 つは次のようになります。
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 にマージされた後、この Web リソースを参照する適切な方法は何ですか? ILMerge コマンド ラインは次のとおりです (ビルド後の bin ディレクトリから)。"C:\Program Files\Microsoft\ILMerge\ILMerge.exe" /keyfile:../../CompanySK.snk /wildcards:True /copyattrs:True /out:Company.dll Company.*.dll