我花了很多时间搜索互联网和stackoverflow,以找出最简单,最自动化的方式来构建我们的应用程序到我们的测试环境。我正在使用Visual Studio 2012和TFS 2010。
我们执行发布到文件系统方法,我们将其发布到临时位置,只需将文件复制到服务器即可。所以我能够创建一个批处理文件,使用xcopy备份应用程序,清除暂存文件夹,通过根据此帖Local Publish using MSBUILD使用publishtofilesystem目标调用msbuild,将应用程序构建到暂存位置,然后复制它到服务器。这非常有效。我甚至设置它,以便它询问我哪个服务器(我们有两个QA服务器)和什么版本,以便它可以填写这些变量。
BUT! (总有一个但是)现在我在获得项目的最新信息后从本地机器运行这个批处理文件,所以我假设它是从我最新的本地文件发布。我的问题是,如何将它放在一个单独的构建机器或服务器上(可能是安装了TFS的那个)并调用相同的批处理文件来构建最新版本,而无需手动获取我的项目的最新版本。
或关于如何改进此过程的任何其他输入。
所以对我来说理想的想法是允许任何人启动1个文件,它将按照我的描述构建我们的应用程序而无需手动获取最新信息。 (现在,批处理文件在项目的TFS中。任何人都可以启动和构建但是,我假设它将使用他们的本地文件,所以如果开发人员已经更改但没有签入文件,它将构建他们的更改和当我们现在想要......包括它们时......从TFS服务器构建机器或构建将是理想的)
感谢并为罗嗦的描述道歉。我希望有人可以在这里指导我。谢谢!
PS,这是我在批处理文件中的命令来构建项目,包括一个echo来告诉我它什么时候做这个部分。我在命令中有一些开关,用于在命令窗口构建时使所有输出消息静音。 (对于我在批处理文件中设置路径的%调用)
Echo Building the latest build to the staging location
call %msBuildDir%\msbuild.exe /clp:NoSummary;NoItemAndPropertyList;ErrorsOnly /verbosity:quiet /nologo myproj.vbproj "/p:Configuration=Release;PublishDestination=%staging%;AutoParameterizationWebConfigConnectionStrings=False" /t:PublishToFileSystem /l:FileLogger,Microsoft.Build.Engine;logfile=Manual_MSBuild_Publish_LOG.log
答案 0 :(得分:1)
您可以从bat文件执行TFS操作。打开CMD窗口并导航到C:\ Program Files或Program Files(x86)(如果您使用的是64位计算机,然后导航到Microsoft Visual Studio 10.0 \ Common7 \ IDE)。做TFS /?你会看到你能做什么。我不会建议一个确切的机制,因为在你的问题中你谈到了VSS和TFS。并不重要......但为了简单起见,您可能希望将所有内容移至TFS。无论如何,您可以在构建之前设置工作文件夹并获取最新的bat文件。