在单个文件中发布asp.net webapplication

时间:2012-11-04 11:37:27

标签: asp.net publishing-site

我有一个用C#编写的ASP.NET WebApplication(不是网站)。

我想在我的服务器中为超过50个站点发布和部署此应用程序。 我更喜欢制作一些dll并将它们放在我的服务器的GAC中,这样所有网站都将使用GAC的dll,然后我可以更新所有网站,只需更换GAC中的一些dll。

当我发布我的应用程序时,我得到一个所有.cs文件的dll,但所有.aspx文件仍然存在。 我想将.aspx文件合并到单个程序集中。

对我的案子有什么办法吗?或其他任何想法?

2 个答案:

答案 0 :(得分:0)

当您转到发布设置时,如果您取消注意所有cs代码将合并到app_web.dll中,则可以选择“使网站可更新”。

您仍将拥有所有单独的aspx页面,因为它们定义了代码的入口点。据我所知,合并它们的唯一方法是将所有单独的aspx页面复制/粘贴到default.aspx中,并将它们包装在<asp:Panel ID="HomePage" Runat="Server" Visible="False">中,然后根据QueryString在Page_Load中设置右侧面板。您可以使用URL重写来获得不错的URL。

根据您拥有的页数以及它们在代码中的大小,我可能不会自己这样做。但是如果你发现有1页的结果超过其余部分,那么技术上是可行的。

另一种选择可能是在子域上托管应用程序,在需要的地方托管iframe。这可能由于跨源问题而无法实现,具体取决于您的设置,但这将是一种“更清洁”的工作方式。

希望这会有所帮助。

答案 1 :(得分:0)

在您的网站项目属性中:

打包/发布网站

检查 - 在发布之前预编译此应用程序

高级 - 将所有输出合并到单个程序集