mysql - Publish Web 不包括一些依赖程序集

标签 mysql wcf web dependencies publish

以往我都是使用批处理文件来准备针对不同环境的发布包,如测试、登台、生产,然后通过各种方式将文件复制到网站文件夹中。批处理文件可能会运行 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 和进行大量假设做了很多“聪明”的事情。

问题一: 用Publish Web部署WCF服务好不好?

问题二: 是否可以运行一些预部署脚本,比如在部署之前运行 XmlPreProcess,以便我可以针对不同的环境?

问题 3: 是否可以要求 Publish Web 不分析 Web.config,然后只复制构建文件夹中的每个程序集和文件?

最佳答案

对于不复制依赖程序集的特定问题(问题 3):

我正在使用一个小型 WCF 服务应用程序,我将其部署到我的本地文件系统(然后在 IIS 中托管该站点)并且遇到依赖程序集未复制到本地文件夹的问题。我的解决方案有两个步骤:

  • 在服务的引用中,突出显示您需要复制的每个引用,然后按 F4。在新窗口中,确保“复制本地”设置为“真”。
  • 右键单击服务项目并选择属性。单击“打包/发布 Web”部分,然后从“要部署的项目...”下拉列表中选择“此项目文件夹中的所有文件”。

关于mysql - Publish Web 不包括一些依赖程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20258271/

相关文章:

ruby-on-rails - ruby 新手,有人可以帮我从控制台破译这个错误吗?

php - 一起显示来自 2 个不同 SQL 表的数据

c# - 自签名证书是否足够安全?

php - 使用 Laravel 使用另一个表中的数据从下拉列表插入表

c# - 以编程方式为 WCF (NetTcpBinding) 指定自定义授权

multithreading - WCF服务契约实现中的多线程操作

javascript - playgroundinc.com中的导航效果是如何实现的

image - 无法加载 YouTube 缩略图的网络图像 Flutter Web

php - 用 php explode json 中的 key

mysql - CakePHP 重新连接到数据库