我已经构建了一个MSBuild脚本,可以自动将为我们的编程团队签入的最新代码部署到2个或3个服务器中的一个(取决于参数)以进行测试。我还写了一个快速的BAT文件来启动它,只是用给定的参数调用“MSBuild.exe”。在MSBuild脚本中,它首先做的是从TFS获取“Get Latest”。这是一段代码片段......
<Project DefaultTargets="BuildLatest" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="C:\Program Files (x86)\MSBuild\MSBuildCommunityTasks\MSBuild.Community.Tasks.Targets"/>
<UsingTask AssemblyFile="C:\Program Files\MSBuild\ExtensionPack\4.0\MSBuild.ExtensionPack.dll" TaskName="TFSSource"/>
...
<PropertyGroup>
<TFSourceLoc>$/SourceCode</TFSourceLoc>
</PropertyGroup>
...
<Target Name="BuildLatest" >
<TFSSource TaskAction="Get" ItemCol="$(TFSourceLoc)" />
</Target>
错误回来...... 错误... \ AutoDeploy.xml(163,5):Win32Exception:系统找不到指定的文件
...并且BAT文件结束。
真正奇怪的是,我可以最小化VS 2010并从资源管理器中运行这个完全相同的BAT文件而没有任何问题。
那么我没看到什么?为什么这不会在VS 2010中运行?
预先感谢您的协助!
答案 0 :(得分:1)
我做了很多研究,这应该在我提出问题之前发生,但无论如何......
我没有调用批处理文件,而是决定尝试直接调用MSBuild.exe并在通用响应文件中放置我的parms(每隔几周用新的Sprint更改)的建议。
我认为通过在“外部工具”对话框中指定正确的目录解决了启动/初始目录的问题。