【发布时间】:2011-02-02 02:02:48
【问题描述】:
我为 Web 服务创建了一个安装包。当我运行安装程序时,它要求我输入网站名称和应用程序池。我不想在现有网站下安装网络服务。我想把它放在根下。我可以在 Visual Studio 中做类似的事情吗?
任何帮助将不胜感激。
【问题讨论】:
标签: web-services iis-7 windows-installer
我为 Web 服务创建了一个安装包。当我运行安装程序时,它要求我输入网站名称和应用程序池。我不想在现有网站下安装网络服务。我想把它放在根下。我可以在 Visual Studio 中做类似的事情吗?
任何帮助将不胜感激。
【问题讨论】:
标签: web-services iis-7 windows-installer
您可能需要考虑使用Web Deploy 将您的应用程序包打包成一个 zip 包,然后使用命令行进行部署。看起来,Web Deploy 可能是比 msi 更适合的技术,因为它为您提供了对参数化的轻松支持和对 IIS 配置的第一手访问(用于您的应用程序部署)。
然后您可以使用manifest 提供程序并在其中定义两个单独的应用程序条目:
<MyPackage>
<iisApp path="Default Web Site/MyApp" />
<iisApp path="MyServicesSite" />
</MyPackage>
您可以使用清单来打包任何您想要的东西:要添加到 GAC 的程序集、注册表项,没有限制。
然后您获取清单并将其打包:
msdeploy -verb:sync -source:manifest="d:\manifest.xml" -dest:package="d:\mypackage.zip"
并通过反转源和目标来部署它:
msdeploy -verb:sync -source:package="d:\mypackage.zip" -dest:manifest="d:\manifest.xml"
或者直接从清单同步到服务器:
msdeploy -verb:sync -source:manifest="d:\manifest.xml" -dest:auto
【讨论】: