我们的一位客户使用基于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
答案 0 :(得分:1)
&#34; obj&#34; folder用于存储临时目标文件和用于创建最终二进制文件的其他文件。你永远不应该在那里引用文件。