【发布时间】:2010-12-03 00:42:55
【问题描述】:
我正在寻找创建一些需要编译为独立 dll 而不是与主应用程序一起编译的自定义控件。不幸的是,到目前为止,这意味着在不使用设计器的情况下手动创建控件,因为 afaik 您无法将用户控件编译为独立组件。由于以这种方式做事使设计人员很难在不花费开发人员大量精力的情况下设计控件的样式,因此我想知道实际上是否有一种可行的方法可以将 .ascx 样式控件编译为独立的二进制文件?
【问题讨论】:
我正在寻找创建一些需要编译为独立 dll 而不是与主应用程序一起编译的自定义控件。不幸的是,到目前为止,这意味着在不使用设计器的情况下手动创建控件,因为 afaik 您无法将用户控件编译为独立组件。由于以这种方式做事使设计人员很难在不花费开发人员大量精力的情况下设计控件的样式,因此我想知道实际上是否有一种可行的方法可以将 .ascx 样式控件编译为独立的二进制文件?
【问题讨论】:
MSDN 文章http://msdn.microsoft.com/en-us/library/aa479318.aspx 解释了如何做到这一点。基本上,您预编译应用程序并获取生成的 DLL。
【讨论】:
您可以将用户控件转换为独立 .dll 中的自定义控件,但它失去了通过标记进行更新的能力。
换句话说,您可以使用标记和代码构建一个 .ascx 文件,然后将其转换为类似于专门使用代码构建的控件。
Turning an .ascx User Control into a Custom Control
您必须了解,用户控件只是为可重用内容提供便利 - 最终,标记确实会得到处理和编译。自定义控件实际上是分发 Web 控件的唯一方法。如果您必须将控件作为库分发,我将专注于让它们对您的开发人员友好,只需几个布局控制属性,而不是乱用 .ascx。
【讨论】:
aspnet_merge <yourdeploydir> 而不使用选项。这会将每个目录变成一个包含所有 ASCX 的 DLL:msdn.microsoft.com/en-us/library/bb397866.aspx