我正在尝试创建自动构建,以将包含文件的文件夹发布到Azure网站上。我无法做到这一点。
我不是发布解决方案(.sln),而是发布包含文件的文件夹。我正在使用VS2013和Visual Studio Online。
我有TFS网络发布方面的经验,所以我多次发布了解决方案。
所以,到目前为止我做了什么:
创建了一个MSBuild build.xml文件,该文件只是将文件夹中的文件复制到输出中。
基于AzureContinuousDeployment.11.xaml创建了构建定义
我的构建定义中的指定build.xml,进程选项卡,"构建解决方案"参数:
如果我构建我的项目,它是正确构建的,文件被复制到输出等(我可以通过打开放置位置验证它,所有文件都在那里)。
然后,我:
在Azure中创建了一个网站,并将其链接到我的TFS订阅。
下载了发布配置文件(.PublishSettings from a web-site)。
基于.PublishSettings文件在Visual Studio中创建Web发布配置文件(.pubxml)。
指定的Web部署发布配置文件和部署设置名称:
但是现在我在构建期间遇到错误:
异常消息:请指定要构建的Visual Studio解决方案(.sln)。 (输入BuildFromSolutionException)
所以它要求我提供Visual Studio解决方案,但之前它与MSBuild文件完美配合(在第3步之后)。
我尝试将.xml重命名为.sln(可能不是我应该做的),现在构建说"解决方案中没有检测到Windows Azure项目(.ccproj)。持续交付Azure Azure服务需要Azure项目。 (输入CCProjNotFoundException)"
如果我没有指定"部署设置名称",则构建完成且没有错误,但同样不会发布到Azure。
那么,问题是,如何在没有解决方案的情况下将自定义MSBuild构建发布到Azure? TFS是否仅针对解决方案持续Azure发布?我希望它是敏捷的,就像我从Local Git发布文件夹到网站一样没有任何麻烦。
我该怎么办?
答案 0 :(得分:0)
你的问题中有一些混淆的想法。适合,自动构建和Git之间没有关系。您正在使用Team Foundation Build来运行部署工作流程。这是不适合您的工作流程。实际上是构建和部署脚本。实际上,您使用的脚本适用于Git和TFVC,因此不是问题。
该特定脚本专门用于构建一个azure项目,然后不断向Azure提供,而您不能像现在这样使用它。但是,您可以创建另一个脚本并使用它。我建议您尝试使用默认构建脚本,并在构建中使用powershell脚本来收集文件,然后将它们推送到Azure。
如果你想更高级一点,你可以创建一个默认副本,并制作一个完全不需要MSBuild的副本。