我有一个包含8个项目的解决方案,其中只有一个是网站/应用程序。其余的都创建了在Web应用程序中引用的程序集。
我想构建解决方案,然后将网站项目打包到Web部署包中。
所以在TFS中,我添加了Visual Studio Build步骤(此后定义中没有其他步骤),将其指向解决方案并添加了以下MSBuild参数:
/ p:DeployOnBuild = True / p:WebPublishMethod = Package / p:PackageAsSingleFile = true / p:SkipInvalidConfigurations = true / p:PackageLocation =“$(build.artifactstagingdirectory)\”
请注意,在TFS源代码管理中,有2个解决方案文件夹。对于这个版本,我只想构建一个解决方案。所以我给了它想要的解决方案的完整路径(没有任何通配符)。
构建成功,当我查看该目录(\ TfsData \ Build_work \ 1)时,它在那里创建了4个文件夹:'a','b','s'和& 'TestResults'。
文件夹'a','b'和& 'TestResults'是空的。
's'文件夹中有一个'$ tf'文件夹,里面有很多东西,我不知道它的用途。
's'文件夹中还有两个解决方案。我不希望第二个解决方案构建/放置在那里。只是第一个。
我在第一个解决方案中找不到Web应用程序的任何Web部署(zip)包。它只是内置的文件夹。
答案 0 :(得分:0)
S 代表Build.SourcesDirectory
下载源代码文件的代理上的本地路径。例如:c:\agent\_work\1\s
A 代表Build.ArtifactStagingDirectory
代理上的本地路径,在将其推送到目标之前复制任何工件。例如:c:\agent\_work\1\a
B 代表Build.BinariesDirectory
代理上的本地路径,可用作已编译二进制文件的输出文件夹。例如:c:\agent\_work\1\b
。
根据您的说明,您需要在构建定义的存储库下的源映射中不需要cloak folders。
此外,您必须使用Copy and Publish Build Artifacts将构建工件发布到drop folder(服务器路径)或共享路径。