Visual Studio Online - 托管构建代理 - 为什么obj \ Debug未创建和/或不可访问?

时间:2015-03-02 10:08:50

标签: visual-studio tfs msbuild tfsbuild azure-devops

我们的一位客户使用基于Team Foundation Server(TFS)功能的Visual Studio Online(http://www.visualstudio.com/en-us/products/what-is-visual-studio-online-vs.aspx

我们正在研究如何使用Visual Studio Online托管构建代理进行自动构建和自动化单元测试。

我们正在尝试在其上构建一个Web应用程序。 注意:Web应用程序将使用Visual STudio 2012正确构建并在我们的本地开发计算机上正常运行

遗憾的是,我们收到了与obj \ Debug

相关的以下错误
$/BlahBlah Master Framework/BlahBlahUIFrameworkForBuildTst/BlahBlah.sln - 4     error(s), 21 warning(s), View Log File
 C:\a\src\BlahBlahUIFrameworkForBuildTst\packages\Microsoft.Bcl.Build.1.0.13    \tools\Microsoft.Bcl.Build.targets (79): The "EnsureBindingRedirects" task     failed unexpectedly.
System.UnauthorizedAccessException: Access to the     path 'C:\a\src\BlahBlahUIFrameworkForBuildTst\BlahBlah\obj\Debug\BlahBlah.csproj.App.config' is denied.
   at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
   at System.IO.FileStream.Init(String path, FileMode mode, FileAccess     access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize,     FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean     bFromProxy, Boolean useLongPath, Boolean checkHost)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess     access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath,     Boolean bFromProxy)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess     access, FileShare share, Int32 bufferSize, Boolean useAsync)
    at System.Xml.XmlWriterSettings.CreateWriter(String outputFileName)
   at System.Xml.Linq.XDocument.Save(String fileName, SaveOptions options)
   at Roxel.BuildTasks.EnsureBindingRedirects.Execute()
   at     Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecution    Host.Execute()
   at          Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__20.MoveNext()
 CSC: Source file 'obj\Debug\TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-    8F5ADCB23D92.cs' could not be found
CSC: Source file 'obj\Debug\TemporaryGeneratedFile_5937a670-0e60-4077-877b-    f7221da3dda1.cs' could not be found
 CSC: Source file 'obj\Debug\TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-    8E70B10BC5D3.cs' could not be found

基本上,分析上面的错误,它表明Build进程未经授权访问obj \ Debug

但是,稍后它还说明找不到obj \ Debug \中的某些文件。例如,以下是其中一个错误:

 CSC: Source file 'obj\Debug\TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs' could not be found

我知道这可能是糟糕的做法,但我试图从我的本地开发计算机提交obj \ Debug \文件夹,但是,它仍然抛出上述错误。 如果我错了,请纠正我,但我相信obj \ Debug \文件夹应该由构建过程本身创建,因此永远不应该提交到Visual Studio Online Repository(甚至任何类型)代码库。)

在任何情况下,让我解释一下我的Visual Studio Online的托管构建代理的构建定义设置是如何:

对于源设置,我只确保工作文件夹涉及我的Web应用程序&#34;源控制文件夹&#34;对应于&#34;构建代理文件夹&#34;同名。 &#34;源控制文件夹&#34;和#34;构建代理文件夹&#34;具有相同的名称。

对于构建默认值,&#34;构建控制器&#34;被指定为&#34;托管构建控制器&#34;  并且暂存位置设置为&#34;将构建输出复制到服务器&#34;

For&#34; Private Drop Location&#34;,&#34; Solution Specific Build Outputs&#34;设置为False,这意味着所有构建输出将位于同一文件夹中。

我是否必须在Visual Studio Online的托管构建代理的构建定义设置中更改配置,以便创建和/或访问obj \ Debug?如果是,我应该进行哪些配置更改?

THX

1 个答案:

答案 0 :(得分:1)

&#34; obj&#34; folder用于存储临时目标文件和用于创建最终二进制文件的其他文件。你永远不应该在那里引用文件。