我使用常规.cs文件完成此操作,该文件只扩展System.Web.UI.UserControl,然后将包含控件的项目的程序集包含在其他项目中。我还在一个项目中创建了.ascx文件,然后在properties-> Build Events-> Pre-build事件中复制了指定文件夹中的所有ascx文件。
现在我想要做的是这两者的组合:我希望能够使用我在一个项目中构建的ascx文件,在我的所有其他项目中,但我想只使用程序集引用而不是不得不将它们复制到我的“二级”项目中,因为这似乎是实现我想要做的事情的一种贫民窟方式。它工作正常,但它不是很优雅。
任何人都可以告诉我这是否可能,如果是这样,最好的办法是什么?
答案 0 :(得分:0)
从根本上说,用户控件从不打算在项目之间共享。如果要创建可跨项目重用的控件,则应创建编译为DLL的服务器控件,这些控件可以简单地被其他项目引用。
答案 1 :(得分:0)
这篇文章:http://webproject.scottgu.com/CSharp/UserControls/UserControls.aspx有一个有用的预构建想法,可以复制开发过程中所需的控件。
copy $(SolutionDir)\ MyUserControlLibrary * .ascx $(ProjectDir)\ UserControls \
答案 2 :(得分:0)
我知道这个问题已经得到解答,但是我们的一个客户使用SiteFinity,我们为用户控件提供了一个已编译的dll文件,然后他们在CMS系统中进行配置。据我所知,它运作得很好。
为此,我们在asp.net网站(而不是Web应用程序)中创建用户控件,并使用预编译和“使用的固定程序集名称”选项发布站点。然后,我们将与ascx文件关联的dll分发给客户端,并根据需要导入它们。