【发布时间】:2013-11-28 05:18:53
【问题描述】:
过去我一直使用批处理文件来准备针对不同环境(例如测试、登台和生产)的发布包,然后通过各种方式将文件复制到网站文件夹中。批处理文件可能会运行 XmlPreProcess 以针对不同环境更改 web.config。
最近在服务器端安装 Web Deploy 3 后,我正在试用 VS 2012 的 Publish Web 功能。结果对于 Hello World 来说看起来不错。
但是,我有一个 WCF 应用程序:MyWcfApp.dll 依赖于 MyWcfContracts.dll 和 MyWcfImplementation.dll,它们依赖于 MyData.dll 和 MySql.Data.dll,是的,我正在使用 MySql。所有这些文件都出现在构建文件夹中,比如 MyWcfAp\bin\Debug。
运行 Publish Web 时,我收到一些警告:增量数据库发布不支持此连接字符串的数据库提供程序 MySql.Data.MySqlClient。仅 SqlClient 以及 Entity Framework Code First 模型支持增量数据库发布。
然后其他依赖的程序集,例如 MySql.Data.dll 没有被复制到服务器。
显然 Publish Web 通过分析 Web.config 和有很多假设做了很多“聪明”的事情。
问题 1: 使用Publish Web部署WCF服务好不好?
问题 2: 是否可以运行一些预部署脚本,比如在部署之前运行 XmlPreProcess,以便我可以针对不同的环境?
问题 3: 是否可以要求 Publish Web 不分析 Web.config,然后只复制 build 文件夹中的每个程序集和文件?
【问题讨论】:
标签: mysql wcf web dependencies publish