2

ビルドがワークフローファイルではなくMSBuildベースであったときに、TFS2008でTFSビルドスクリプトをカスタマイズしたプロジェクトがあります。このカスタマイズされたスクリプトは、<Exec>タスクを使用してNAntを呼び出し、パッケージ化を行います。

TFS 2010インストールを新しいサーバーに移行し、TFS 2012にアップグレードした後、TFSBuild.projファイルのその行でエラーが発生しています。

Target "AfterCompile: (TargetId:321)" in project "C:\Builds\2\Proj\Continuous Integration (Proj)\BuildType\TFSBuild.proj" (target "Compile" depends on it):
Using "Exec" task from assembly "Microsoft.Build.Tasks.v3.5, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
Task "Exec" (TaskId:209)
  Task Parameter:Command=C:\Tools\NAnt\bin\Nant.exe (TaskId:209)
  Task Parameter:WorkingDirectory=..\Sources\ (TaskId:209)
  Command: (TaskId:209)
  C:\Tools\NAnt\bin\Nant.exe (TaskId:209)
C:\Builds\2\Proj\Continuous Integration (Proj)\BuildType\TFSBuild.proj(225,5): error MSB6003: The specified task executable "cmd.exe" could not be run. The directory name is invalid
Done executing task "Exec" -- FAILED. (TaskId:209)
Done building target "AfterCompile" in project "TFSBuild.proj" -- FAILED.: (TargetId:321)

その行は次のようになります。

<Target Name="AfterCompile">
  <Exec Command="C:\Tools\NAnt\bin\Nant.exe" WorkingDirectory="..\Sources\" />
  <!-- ... -->
</Target>
4

1 に答える 1

3

作業ディレクトリを確認してください。これは存在しない場所を指していると思います。

具体的には、TFS2012でデフォルト名SourcesBinariesディレクトリ名がとに変更されましsrcbin。プロパティ$(SourcesSubdirectory)$(BinariesSubdirectory)を使用して、正しい値を取得します。

于 2013-01-14T18:38:58.267 に答える