我在发布时遇到了很多问题,例如当您需要对代码进行小的更改时,有时生成的 DLL 文件(例如default.aspx.CS
发布时的 dll 文件)无法被 IIS 识别,说代码隐藏错误或其他什么。很抱歉没有记住确切的错误信息。我希望你现在知道我的意思。
因此,我通常做一个简单的Copy Paste
操作而不是Publishing。
你能告诉我不使用 Publish 方法我错过了什么吗?出版如何更好?或者你更喜欢哪一个,为什么?
基本上这是一个利弊的情况。
谢谢
我在发布时遇到了很多问题,例如当您需要对代码进行小的更改时,有时生成的 DLL 文件(例如default.aspx.CS
发布时的 dll 文件)无法被 IIS 识别,说代码隐藏错误或其他什么。很抱歉没有记住确切的错误信息。我希望你现在知道我的意思。
因此,我通常做一个简单的Copy Paste
操作而不是Publishing。
你能告诉我不使用 Publish 方法我错过了什么吗?出版如何更好?或者你更喜欢哪一个,为什么?
基本上这是一个利弊的情况。
谢谢
好吧,这取决于您所说的“复制”是什么意思:
Publishing
您可以选择pre-compile
全部或部分应用程序。您可以publish
复制到文件系统中的本地文件夹(而不是目标/主机),然后复制更新的文件(仅)。如果您正在进行“代码隐藏”(c#/vb 代码)更改,这意味着您可能只需要“复制”/覆盖dlls
。不用说,如果您进行了“内容”更改(html/razor/script/etc)更改,那么您也需要复制/覆盖这些更改。
如果您不熟悉部署,您可能会发现自己只是复制/覆盖“所有内容” ,这是最安全的方法。一旦获得更多经验,您将“识别”哪些资产只需要更新(一个或几个dlls
和/或内容代码,而不是“一切”)。这没有什么神奇之处,通常,它只是在您published
(本地)或rebuild
您的 Web 应用程序之后查看 dll/文件的时间戳。
我建议您这样做,local publish
以便您可以查看服务器上实际需要的内容。发布到本地文件系统/文件夹的文件需要在您的主机/服务器上。这样做将可视化并消除任何“神秘” Publishing
:
因此,“复制”可以表示上述内容,或者如果您说您将简单地将所有开发代码(原始(vb/cs)html/cs/vb
)复制到您的主机,那么这意味着您的站点将dynamically compiled
是需要/请求的每个资源(没有pre-compiled
)。也“容易”,但你确实输了pre-compilation
,这意味着当你的每个网页被请求/需要时会有延迟(ASP.net 需要动态编译)。此外,您还将在服务器上公开您的源代码。根据您的情况,这可能意义不大,但这是要考虑的另一件事。
假设我们考虑一个 aspx 页面及其隐藏文件的 aspx.cs 代码,则可以使用三种替代方法来部署您的站点:
这三种模式各有利弊。
第一个是最容易增量更新的,但同时对不需要的修改最开放。
第二个也很简单,可以从 vs 调用,它消除了在服务器上进行一些不需要的修改的可能性,但是 .aspxses 在第一次请求时仍然需要时间来编译
第三需要时间和一些手动操作,但可以防止任何更改,并且还可以加快站点的预热,因为不需要编译资产。它非常适合共享环境。