.Net Web应用程序和编译/部署

时间:2011-01-24 19:45:05

标签: c# asp.net

我接手了一个引用dll的Web应用程序项目。该解决方案具有实际项目以及用于创建DLL的类库。我需要对Web应用程序进行更改并部署到生产环境。我用来部署asp.net网站以及非常直接的经典asp,只需复制文件。

我需要帮助才能理解编译和部署过程。这是一些问题: 1)类库(DLL)改变了;我只是编译该类库项目并仅移动Dll。 2)Web应用程序项目发生了变化,dll保持不变;我会移动哪些文件。

此外,如果有人可以澄清部署时如何处理DLL版本。我习惯于取消注册/注册DLL的旧方法,现在情况并非如此。我担心在同一个盒子上有多个DLL副本。

任何帮助或阅读参考将不胜感激。

贾马尔

4 个答案:

答案 0 :(得分:1)

当您以这种方式手动部署时,很容易出错(忘记复制相关文件)。这件事发生在我之前。

我建议您使用Visual Studio中的发布功能。 您可以右键单击Web应用程序,然后从上下文菜单中选择“发布”。我通常发布到本地文件夹(您可以直接发布到您的服务器)然后使用FTP客户端(如FileZilla)进行实际部署(我有一些问题直接从Visual Studio部署)。

使用FileZilla上传时,您可以指定希望如何处理现有文件覆盖。 我使用选项:'覆盖如果源文件更新'。这样部署速度很快(只有已更改的文件被删除)并且安全,因为我们不会错过文件。

回答你的问题: 1)是的,只要它与旧版本保持二进制兼容(这里容易出错)就足以部署类库了。 2)您需要部署更改的文件(dll,aspx,cshtml等...)。如果类库dll没有更改,则不需要重新部署它们。

按照上面的步骤,你应该没事。

答案 1 :(得分:0)

当你更改DLL时,通常你可以直接删除它,假设你没有引用特定的版本号。一般来说,为了安全起见,我在更改DLL时会再次复制整个网站。它并非绝对必要,但如果您的网站不是太大,它可能是最简单的方法。

如果您要更改未以其编译形式部署的文件(App_Code文件夹中的.aspx,.aspx.cs,.cs文件),您只需更新该特定文件并重新启动IIS即可。< / p>

答案 2 :(得分:0)

听起来你在谈论预编译的.net应用程序。该应用程序使用Aspnet_compiler.exe编译,新的DLL将复制到主机。

不必注册DLL,IIS“知道”如何处理预编译的.net应用程序。这几乎是昙花一现;与直接复制.aspx文件不同。

您可以更新DLL的子集(例如,类库)。有几种模式可用于编译全部或部分应用程序。

答案 3 :(得分:0)

一般来说,如果依赖程序集已更改,则可以部署新程序集。但是,如果该程序集的任何接口发生更改,或者对Web应用程序进行了其他相应的更改,那么您将不得不部署整个程序。

那就是说,我已经看到需要完全重新编译,部署和测试的商店,即使依赖程序集中只有一行代码发生了变化。

完整的部署非常简单。

  1. 右键单击Web项目,然后单击“发布”。
  2. 直接发布到网络服务器(我不建议这样做)或将其发布到本地目录。
  3. 进行生产推送所需的任何配置更改。
  4. 如果您发布到本地目录,请将已编译的文件复制到生产服务器。
  5. 有人说先删除生产文件,然后复制。其他人说复制到新目录并将IIS重新指向新目录。你必须看看什么对你有用。

    现在,网络应用程序给你的一件事是配置转换。这意味着您可以让编译器根据您要发布的环境进行配置更改。我强烈建议你研究和使用这些。它使得糟糕推动的可能性大大降低。