经验丰富的开发人员第一次建立了奔步持续集成,我们有一个单一的解决方案,在该解决方案中包含多个项目。比如说Main、Services和Tests。测试有一个对Main.dll的引用,因此有一个构建顺序的依赖。我将奔步配置为针对解决方案运行,但我可以看到它在Main.dll被创建之前就执行了Tests的构建。这导致了它的失败,因为Main.dll不存在。
所以有两个问题。
竹子的错误: CSC : 错误 CS0006。找不到元数据文件 "C:\bamboo...\PROGRAM\bin/Main.dll"。
还有 正如我所提到的, 在Visual Studio上,我看到
1>----Build started: Project: Main Configuration: Debug Any CPU
2>----Build started: Project: Services Configuration: Debug Any CPU
2> Services -> C:\Path\Program\Main\bin\Services.dll
1> Main -> C:\Path\Program\Main\bin\Main.dll
3>----Build started: Project: Test Configuration: Debug Any CPU
3>Tests -> C:\Path\Program\Tests\bin\Test.dll
而竹子则显示
1>----Build started: Project: Services Configuration: Debug Any CPU
1> Services -> C:\Path\Program\Main\bin\Services.dll
2>----Build started: Project: Test Configuration: Debug Any CPU
2> CSC : error CS0006: Metadata file 'C:\bamboo\...\Project\Main\bin\Main.dll' could not be found
所以,我们终于通过试错解决了这个问题.我们的IT管理员给了Bamboo-agent(用户)对确定的目录的完全访问权,但其他用户只是有Read访问权。我们最终不得不授予所有用户(Public)对该目录的完全权利访问。所以很明显,在需要权限更新teh applicationhost文件的任务过程中,进程使用了Bamboo-agent以外的账户。