TFS 2015年,vNext建立过程(不XAML)上部署不发布SQL连接字符串时,它已经存在使用变换
我想对于一个MVC的Web应用程序自动部署过程。它将部署的服务器具有不同的SQL连接字符串。因此,我目前的部署是手动将web.config文件复制到web.config.save,使用WebDeploy部署新版本,然后转到旧的web.config.save文件并复制连接字符串。我现在的规模已经远远不能持续太久。所以我需要进一步自动化这个过程。我有TFS自动构建和部署到我的测试服务器(它也有不同的连接字符串,所以这是一个很好的测试)。在“发布”属性中,我尝试在发布设置数据库部分取消选中“在运行时使用此连接字符串(更新目标web.config)”复选框,然后再次将项目签入到TFS。但是在部署时,web.config采用默认设置。我不想删除这个设置,因为我想要一个默认连接字符串用于新安装。
我可以编写一个xml传输程序来保存当前连接字符串,然后在重新完成时覆盖。但是我认为必须有一种方法来使用当前的工具集来做到这一点,并且为什么要重新发明轮子?
我开始使用转换的路径。所以,我在VS2015中创建一个web.config.release加入这个到web.config.release文件:
<connectionStrings>
<add xdt:Transform="InsertIfMissing" xdt:Locator="Match(name)" name="AppEntities" connectionString="metadata=res://*/Models.DBName.csdl|res://*/Models.DBName.ssdl|res://*/Models.DBName.msl;provider=System.Data.SqlClient;provider connection string="data source=.\SQLExpress;initial catalog=DBName;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
因此,没有人知道我可以做的SQL连接字符串更新仅当它不”是否存在于当前的web.config中进行部署?
几个信息将有助于回答你的问题:你是什么意思与'复制'? web.config.save文件来自哪里?你使用的是哪个版本的TFS?您是否正在使用XFSL构建版或VFS构建版的TFS2015 +和VSTS? –
谢谢,更新了任务以澄清您的意见。 – DaBlue
一位员工告诉我有关转换的信息,然后我发现这篇文章的主题,它似乎在我最初的测试中工作。 http://www.tomot.de/en-us/article/5/asp.net/how-to-use-web.config-transforms-to-replace-appsettings-and-connectionstrings – DaBlue