过去,我一直在使用批处理文件来准备针对不同环境(如测试,登台和制作)的发布包,然后通过各种方式将文件复制到网站文件夹。批处理文件可以运行XmlPreProcess来改变不同环境的web.config。
最近,我在服务器端安装Web Deploy 3后,正在试用VS 2012的发布Web功能。结果看起来对Hello World来说很好。
但是,我有一个WCF应用程序:MyWcfApp.dll依赖于MyWcfContracts.dll和MyWcfImplementation.dll,它依赖于MyData.dll和MySql.Data.dll,是的,我使用的是MySql。所有这些文件都出现在build文件夹中,比如说MyWcfAp \ bin \ Debug。
运行Publish Web时,我收到了一些警告:增量数据库发布不支持此连接字符串的数据库提供程序MySql.Data.MySqlClient。仅对SqlClient以及Entity Framework Code First模型支持增量数据库发布。
然后其他依赖程序集(如MySql.Data.dll)未被复制到服务器。
显然发布Web通过分析Web.config并做了很多假设,做了很多“聪明”的事情。
问题1: 使用Publish Web部署WCF服务是否合适?
问题2: 是否可以运行一些预部署脚本,比如在部署之前运行XmlPreProcess,以便我可以针对不同的环境?
问题3: 是否可以要求Publish Web不要分析Web.config,然后只复制build文件夹中的每个程序集和文件?
答案 0 :(得分:1)
对于不复制依赖于程序集的特定问题(问题3):
我正在使用一个小型WCF服务应用程序,我将其部署到我的本地文件系统(然后在IIS中托管该站点),并且存在依赖于程序集的问题未被复制到本地文件夹的问题。对我来说,解决方案有两个步骤: