我有一个Windows Azure网站,我已经与托管的Team Foundation Server建立了Azure持续集成。我在本地副本上进行了更改,提交到TFS,然后将其发布到Azure。这很好,问题是我在〜\ App_Data \文件夹中有一个Access数据库,当我签入时,Azure上的副本被覆盖。
我将Web部署发布配置文件设置为“Exclude App_Data”,并将构建任务配置为使用Web部署配置文件,现在它删除了我的〜\ App_Data \文件夹。
有没有办法配置Azure Continuous Integration来部署所有内容并单独保留App_Data?
答案 0 :(得分:0)
我在Visual Studio中使用“发布Web”工具,但我认为原则是相同的:
默认情况下,App_Data文件夹在此行为中不受特殊处理。这是有道理的 - 如果您在本地修改.aspx或.jpg文件,您可能希望将最新版本发布到网络上,对吗?
我还使用App_Data存储一些我想要修改Web服务器(ASP.NET代码)的文件,并使其保持最新状态。
解决方案是:
理想情况下,您不必更改任何代码,如果需要,服务器可以创建一个空白文件。
但是,如果您必须从一些内容开始,例如,新的空白.mdf文件,您可以执行以下操作:
在Global.asax中,修改“Application_Start”以从空白起始文件创建实际工作的.mdf文件:
// If the real file doesn't exist yet (first run),
// then create it using a copy of the placeholder.
// If it exists then we re-use the existing file.
string real_file = HttpContext.Current.Server.MapPath("~/App_Data/working.mdf");
if (!File.Exists(real_file))
File.Copy(HttpContext.Current.Server.MapPath("~/App_Data/blank.mdf"), real_file);