我使用的是VS2013 Professional,我有两个独立的ASP.NET MVC项目,都是在VS2013 Pro中从头开始创建的。
两者都使用Code First来管理数据库,并且都通过" Enable-Migrations"在程序包管理器控制台中。在IIS上安装应用程序时,需要对数据库进行一些更改。为此,我想使用Code First Migrations来执行数据库更新。
我遇到的问题是当我将每个项目发布到" Web部署包"我检查"执行代码优先迁移(在应用程序启动时运行)"复选框,我在生成的ZIP包中得到的结果略有不同。
不同之处在于,一个项目上的web.config文件包含<add>
中_DatabasePublish
的{{1}}对象以及{{1}内的<connectionStrings>
databaseInitializer如预期的那样。
但是,其他项目不包含这些附加元素中的任何一个,这意味着在部署到IIS时不会进行数据库更改。
我已经比较了两个项目的设置,但似乎无法解决为什么输出存在差异。我可以让失败的项目输出所需的XML的唯一方法是更改&#34;配置&#34;来自&#34; Debug&#34;的发布向导中的下拉列表到&#34;发布&#34;。这不是理想的,因为我想将配置保留为&#34; Debug&#34;在这种情况下(我发布到UAT并希望能够轻松调试问题)。我意识到只要我已经部署到IIS但我更愿意依赖VS为我输出正确的XML,我可以简单地添加调试参数。
正在按预期工作的应用程序成功输出正确的XML,无论配置是否为&#34; Debug&#34;或&#34;发布&#34;。
我想我必须遗漏一些内容,以便了解有关在失败项目中限制正确XML的内容的任何指示。