是否可以使用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
答案 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