使用PowerShell从VSO部署到Azure存储

时间:2014-06-05 15:43:47

标签: powershell deployment visual-studio-2013 azure-devops

是否可以使用PowerShell从VSO部署和/或查看VSO存储代码的文件系统?

最近,我们已将源代码从本地TFS移至TFService / Visual Studio Online。在本地TFS上,我们有一个PowerShell脚本,可以将应用程序部署到Azure Blob。

这是剧本所做的事情

1.创建一个临时/临时文件夹

2.在构建之后复制bin目录,

3.创建一个txt文件,该文件从构建代理上的AssemblyInfo.CS文件中提取版本#(客户应用程序将检查它是否需要更新)

4.创建一个同样从AssemblyInfo.CS文件(更新客户数据库)中提取版本号的.sql文件

5.将复制的bin和创建的.sql绑定在一起

6.将Zip和txt加载到Azure Blob

我们希望继续使用此脚本在VSO上进行部署,但当前的问题是我在文件路径上盲目运行。我查看了构建日志,找到了C:\ a \ src和C:\ a \ bin,这是一个开始。我还能够在构建之后运行简单的命令,例如dir / mkdir,而不会出现错误,我假设这意味着我可以在某种程度上操纵VSO使用的文件系统。

我也在msdn网站上发布了这个问题@ http://social.msdn.microsoft.com/Forums/vstudio/en-US/4a951897-52b3-4ee9-91e3-e1412c242207/deploy-to-azure-storage-from-vso-with-powershell?forum=tfsgeneral

1 个答案:

答案 0 :(得分:0)

我想用我的问题的解决方案来更新它。

VSO将所有项目文件存储在C:\ a \目录下。

源文件位于C:\ a \ src \

bin目录位于C:\ a \ bin \

为了获得项目中的正确文件,只需按照Visual Studio或VSO中的项目路径进行操作。

示例:

假设我有一个项目XYZ,它包含我的BuildProcessTemplates和一个名为XYZ的目录,它保存我的分支。

为了进入XYZ的SRC,我的脚本必须定位C:\ a \ src \ XYZ( projectName )\ XYZ(目录)\ Version0101( aBranch )\ anotherDirectory \ theFileIneed.txt'

您可以根据需要操作VSO目录,因为您拥有所有C.R.U.D.能力。

就我而言,我创建(或重新创建)STAGING文件夹

$prebuildSTAGING = "C:\a\PrebuildSTAGING"
function Set-Staging
{
    if(!(test-path $prebuildSTAGING))
    {
        mkdir $prebuildSTAGING -Force
    }
    else
    {
        rmdir $prebuildSTAGING -Recurse -Force
        mkdir $prebuildSTAGING -Force
    }
}

这将确保我每次都有新的STAGING文件夹。 然后我选择我需要的文件,编辑它以符合我的要求,然后将其推回SRC。

这样做可以让我自动增加应用程序的程序集版本,并将其部署到Azure,而不会有任何大的麻烦。

<强> UPDATE :::

如果有人真的以这种方式将他们的应用程序打包到VSTS上,那么只是想再次更新这个---

目录已更改(现在多次)。访问构建文件的正确路径是C:\ a \ 1 \ s \ {YourProjectName} \ bin \ {YourBuildPlatform} \ {YourBuildConfiguration} \

例: VS = ABC中的解决方案名称,解决方案中的项目名称= XYZ 您有一个XYZ配置,名为TEST,平台为x86

垃圾箱的路径是 C:\一个\ 1 \ S \ XYZ \ BIN \ 86 \ TEST