2

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

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

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

有什么办法吗?或者我的情况有什么其他想法吗?

4

2 回答 2

0

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

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

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

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

希望这有帮助。

于 2012-11-04T11:53:42.477 回答
0

在您的 Web 项目属性中:

打包/发布网络

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

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

于 2012-11-05T05:46:15.280 回答