0

テストのために、プログラミングチームにチェックインされた最新のコードを2台または3台のサーバー(パラメーターに応じて)のいずれかに毎日展開するMSBuildスクリプトを作成しました。また、指定されたパラメーターを使用して「MSBuild.exe」を呼び出すだけのクイックBATファイルを作成しました。MSBuildスクリプト内で最初に行うことは、TFSからの「最新の取得」です。これがコードスニペットです...

<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ファイルをExplorerから問題なく実行できることです。

だから私は何を見ていませんか?なぜこれはVS2010内から実行されないのですか?

よろしくお願いします!

4

1 に答える 1

1

質問をする前にもっと多くの調査を行うべきでしたが、とにかく...

バッチ ファイルを呼び出す代わりに、MSBuild.exe を直接呼び出して、parms (新しいスプリントで数週間ごとに変更される) を一般的な応答ファイルに入れるという提案を試すことにしました。

「外部ツール」ダイアログボックスで適切なディレクトリを指定することで解決されたのは、開始/初期ディレクトリの問題だったと思います。

于 2012-08-14T15:52:22.463 に答える