0

我有一个安装在几个不同客户端服务器上的应用程序。它们每个都有不同的 web.config 文件和不同的虚拟文件夹。目前我正在编译、手动复制、设置 IIS、更改 web.config 并为每次安装添加虚拟文件夹,并在更新时再次添加。

我根本不知道如何使用诸如 Web Deploy 或 Deployment Package 之类的东西进行部署,这将让我创建不同的配置文件或如何管理虚拟文件夹(我假设我只会部署空文件夹并且仍然需要手动完成这部分)。我可以从一开始就设置 IIS 和虚拟文件夹,但我希望每个客户端都能够下载新版本并在没有我输入的情况下安装它们(因为有些客户端对远程访问很有趣)。

4

2 回答 2

0

我不喜欢 Web Deploy 和其他方案,因为与桌面不同,Web 服务器都倾向于具有独特的配置。

就我而言,我们所有的 Web 应用程序都使用自定义编写的 VBScripts 进行部署(比批处理文件更令人愉快,并且无需重新学习 PowerShell)。VBScript(及其默认的 COM 对象库)为编写部署脚本提供了一个引人注目的平台。如果您不能忍受语法,您可以使用相同的工具使用 JScript。奖励:Visual Studio 仍然提供 Windows 脚本 IntelliSense,尽管它不是广告功能)。

我最近的部署脚本很简单:它是一个 VBScript(由 VS 的 Post-build 命令行调用),它使用 7-Zip 打包 Web 应用程序的文件,然后生成一个ftp.exe批处理文件(然后运行 ​​ftp.exe 本身)上传文件到服务器,它还会生成一个名为“Unpack.cmd”的文件,该文件会调用 7-Zip 将文件提取到正确的位置。唯一的手动步骤是在服务器上执行 Unpack.cmd,但例如可以使用远程 PowerShell 来完成。

为什么需要独立于应用程序自定义 IIS 配置?你不能把你的web.config文件里的所有东西都放在下面<system.webServer>吗?

于 2012-08-08T23:16:59.600 回答
0

您可以为每个环境设置构建配置。通常,您可以获得开箱即用的 Debug 和 Release。我喜欢用 Development、Staging 和 Production 配置替换它们,这允许每个环境使用不同的 web.config。

当然,在发布的时候,你还是要确保你选择了正确的配置。

于 2012-08-08T23:10:38.747 回答