在ASP.NET网站中发布用户控件

3
我将我的网站发布为预编译部署文件。
在我的网站中,我们有用户控件。(ascx和ascx.cs)
使用“右键单击网站并发布”进行发布时,我们希望将ascx控件添加到部署文件夹中而不进行任何更改。
但是用户控件的cs文件(test.ascx.cs)可以作为bin文件夹(precompiled)中的dll或者appcode dll。
由于我们需要在运行时动态加载用户控件,所以我们需要原始的ascx控件而不是预编译格式。
有没有一种发布方式,可以将“cs”用户控件编译为dll,并将“ascx”用户控件作为未编译的源代码发布?

我认为你不能告诉它请预编译我的网站..但是,不要包括这些文件!这将是其中之一。就个人而言,我很久以前就放弃了发布按钮..Araxis Merge才是王道 :-) - Robert Hoffmann
你能否更新问题并附上代码,展示如何在运行时动态加载用户控件? - Damith
1
我不明白将codebehind放在已编译的dll中和动态加载ascx之间的联系。两者并不互斥。因此,尽管第一个答案在技术上是正确的,但我认为你的思路有误。请恕我直言。 - Alexander
1个回答

0

你可以更改单个 "ascx" 文件的构建操作,以免其被编译。目前它们将被设置为 "编译"。

对于任何您不想在发布时编译的 "ascx" 文件,请执行以下步骤。

  1. 右键单击 "ascx" 文件,然后单击 属性
  2. 在属性窗口中,将 Build Action 属性从 "Compile" 更改为 "Content"

如果您这样做,则在发布(或构建)时,您更改的文件将不会被编译。但是,它们将作为内容以其原始文件格式复制到发布目标。


1
我们正在使用网站。在网站用户控件的ascx上右键点击时,我们没有看到属性。在网站的情况下,如何将编译操作中的构建操作属性设置为内容。似乎你上面提供了Web应用程序的想法。 - Bala
我能看到它们。你说你正在使用“网站”是什么意思?你能否澄清一下? - dcarson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接