我们有一个TFS 2008项目,有两个分支("Main"和"NewFeature").每个都是源代码的完整,独立的"副本"(变体).
通过更改工作空间映射,我们可以将任一变体映射到我们的本地PC上,并且一直在使用两个分支都没有问题.
但是,如果我设置映射以将我们的构建服务器切换到NewFeature分支(在构建服务器方面,它应该简单地交换NewFeature源代码而不更改任何其他内容)我得到错误:
There is no working folder mapping for $/Main/Product.sln
Run Code Online (Sandbox Code Playgroud)
即,当它从NewFeature分支构建时,仍然会在Main分支中查找某些内容,即使此分支的源代码中没有任何引用.它似乎缓存了一些对Main的引用?!
我做了一个完全干净的构建(从服务器删除了构建文件夹并使用/ p:ForceGet = true运行构建以确保映射被刷新到服务器,并且服务器上没有可能缓存的文件工作区绑定),但这没有帮助.
有什么建议?
当尝试使用TeamCity和Web Deploy部署我的站点时,我收到此错误:
error MSB4057: The target "MsDeployPublish" does not exist in the project.
Run Code Online (Sandbox Code Playgroud)
我必须在构建服务器上安装一些东西吗?这是一个安装了Web Deploy 3.5的干净的Windows Server 2012.
如果您有一个ASP.NET Web站点项目类型(没有正确的.csproj或.vpproj项目文件而且只是一个松散文件的文件夹),那么当您使用NuGet添加一个包时,它会生成一个*.dll Bin目录中的.refresh文件,用于引用父包文件夹中的包的dll.
例如,如果从程序包管理器控制台执行"install-package elmah",则将Elmah放在项目解决方案目录的packages文件夹中,并将文件Elmah.dll.refresh放在项目的Bin文件夹中.
当我在本地构建项目时,Visual Studio会自动引入刷新文件引用的DLL.该网站和Elmah运行正常.我没有将项目的Bin目录中的Elmah.dll文件签入源代码控制(只检查了刷新文件和packages文件夹).
但是,我正在使用Web部署项目预编译站点并执行web.config替换以进行部署.当以这种方式构建解决方案时,Elmah.dll不会自动被拉入网站项目Bin目录,并且由于缺少DLL,该站点无法正常运行.
NuGet打算如何在这种情况下使用?我想在Bin目录中检查Elmah.dll吗?
我和我的团队一直在设置Jenkins服务器,以便在我们用作构建服务器的Mac Mini上自动运行单元和ui测试.Mac Mini没有连接外围设备,我们可以访问它的唯一方法是远程登录.
当我使用Mac内置的屏幕共享应用程序远程登录计算机时,使用iOS模拟器可以很好地运行测试.但是,如果我在测试运行时关闭了远程连接,那么在尝试键入时(包括所有其他测试/ ui测试通过飞行颜色),涉及键入文本的ui测试将失败并出现以下错误:
断言失败:等待键事件完成超时
当Jenkins自动为我们运行测试时,这显然会导致一些问题,因为我们并不总是希望远程登录到计算机.
我觉得这与模拟器的软件键盘有关,但我不明白为什么会出现这个问题.为了软件键盘存在或者某些这样的事情,mac是否需要连接某种显示输出?将显示器连接到机器(即使它没有真正使用)会导致测试通过吗?为什么会这样呢?
我们正在使用Cake Build自动化我们的构建,我们使用nuget.org的NuGet软件包,但我们也有自己的NuGet Feed服务器,它具有用户名/密码认证可供访问.我们如何利用带有身份验证的自定义NuGet源服务器来使用Cake Build?
今天在我们的TFS2010构建服务器上遇到了一个非常奇怪的问题.突然,构建服务失败了,没有明显的原因.我们整天都在拍摄它,但仍然没有找到原因.
其中一个问题是构建服务是(或应该!)在名为tfs2010build的AD用户下运行.但是,当我尝试启动该服务时,我收到以下错误
Service cannot be started. Microsoft.TeamFoundation.TeamFoundationServerUnauthorizedException: TF30063: You are not authorized to access http://tfs2010:8080/tfs/default. ---> System.Net.WebException: The remote server returned an error: (401) Unauthorized.
Run Code Online (Sandbox Code Playgroud)
当我查看TFS2010服务器上的事件日志时,我看到失败的身份验证是为一个名为TFS2010Install的用户注册的,该用户用于安装所有内容.我已经检查过,并且该服务被指定为在TFS2010Build下运行.
从TFS2010服务器登录:
Account For Which Logon Failed:
Security ID: NULL SID
Account Name: TFS2010INSTALL
Account Domain: LC
Run Code Online (Sandbox Code Playgroud)
所以我的问题是这怎么可能.COULD用户TFS2010构建一些如何被TFS2010安装模拟?我试图安装一个额外的构建服务器,在用户TFS2010Build下启动服务没有问题 - 因此它不是AD或TFS用户权限的问题.
希望你们能帮忙!
/碧玉
!更新了一些屏幕截图.构建服务器是TFS2010BIULD,TFS服务器是TFS2010

非工作构建服务器TFS2010Build的屏幕截图

工作构建服务器TFS2010Build1的屏幕截图

!!新的更新
我已经设法让Build服务在TFS2010Build用户帐户下运行(实际上是问题开始时的初始状态).当我将构建队列到此控制器和代理程序时,我会在构建日志中获得以下内容:
TF215097:初始化构建定义的构建时发生错误\ PlanteIT_MarkOnline_Scrum\CI_Main_FieldOnlineClient:TF215106:访问被拒绝.LC\TFS2010INSTALL需要更新团队项目PlanteIT_MarkOnline_Scrum中的构建定义CI_Main_FieldOnlineClient的构建信息权限以执行操作.有关更多信息,请与Team Foundation Server管理员联系.
尽管TFS2010Build用于构建服务,它仍然坚持TFS2010Install用户帐户正在运行该服务.有任何想法吗?
当创建一个构建服务器来清理版本控制检查和给定源存储库或项目中的所有内容的完整系统构建时,XE3 Win32/Win64项目所需的最低Delphi安装空间是多少?(核心系统 - 不是第三方组件)
我更喜欢有一小部分文件可以包含在存储库中,而不是完整的Delphi安装.
我尝试设置一个支持尽可能多的语言/平台的大厅构建服务器(http://concourse-ci.org/).
我已经读过,从Windows Server 2016开始,可以将Windows作为容器.当concourse在其网站上写道支持多个平台(包括Windows)时,我想知道这是否意味着可以使用Windows容器?
如果无法运行Windows容器,我是否可以以某种方式使虚拟机而不是容器?
windows containers build-server windows-server-2016 concourse
我是Azure的新手,想要使用TFS创建持续集成构建.我创建了一个构建定义,但是在构建定义中使用托管构建服务器在简单网站上构建我的云应用程序失败并显示错误:
C:\ a\src\myAzure\myAzure\myAzure.ccproj(70):导入的项目"C:\ Program Files(x86)\ MSBuild\Microsoft\VisualStudio\v11.0\Windows Azure Tools\2.0\Microsoft.WindowsAzure .targets"没找到.确认声明中的路径是否正确,以及该文件是否存在于磁盘上.
然而,我可以在本地构建,并手动发布到Azure,它将部署正常.我怀疑TFS的托管构建服务器不支持Azure 2.0吗?有没有办法解决这个问题,还是我不得不忘记使用CI的想法?
我目前正在我们的办公室设置一个构建服务器,我想知道这是什么最好的做法.我知道每种情况都要求采用不同的方法,并且有一百万种方法可以实现相同的目标,但由于我是Jenkins的新手和一般的构建服务器的概念,我想知道我是否这样做'对了".
我们公司专注于为各种客户构建网站,如WordPress或Magento等各种平台.我现在有以下设置:
我们将更改推送到Git中的master或staging-branch.Jenkins轮询这些分支,并在检测到更改时执行以下操作:
master在此示例中)build-masterorigin/masternpm installa package.json.grunt builda Gruntfile.js.origin/build-master.cap build-master deploy让Capistrano处理远程服务器上的部署.现在我想知道这是否是使用构建服务器的"正确"方式.我遇到了一些逻辑问题.喜欢:
例如供应商软件.当我有各种带有Bower的JS库(它们位于git-ignored js/vendor-folder中)时,我可以将它们连接起来并将其uglify为一个缩小的JS文件,这样它们就可以将它们提交到build-master-repository(对于Capistrano).但是当我有PHP库(例如使用Composer)时,我不知道如何处理这个问题.它们位于git-ignored php/vendor-folder中,但它们需要包含在-branch中,build-master以便在实时服务器上部署get.目前我这样做是通过向.gitignore.build我的存储库添加一个包含php/vendor-folder的存储库,并.gitignore在提交和推送之前用这一个覆盖现有的存储库origin/build-master.
和/或:
编译文件.当我不想包含一些文件(比如从SASS生成的CSS文件)时,我把它们放在了.gitignore.但同样,当Capistrano要部署它时,我希望编译的,连接的和缩小的CSS文件在我的存储库中,否则它不会放在我的生产服务器上.
任何人都可以告诉我,我是否应该以它应该的方式构建和部署?或者我在这里完全过于复杂了?我真的很感兴趣那些有更多经验的人在他们的构建过程中如何利用Jenkins,Grunt,Bower,Composer,Capistrano等.