2016-06-23 14 views
1

私の.csprojは、シンボリックリンクを再生成する.csprojファイル内に次のポストビルドイベントを定義します。これは、マニュアルのVisual Studioのビルドと内部の細かい動作し、シンボリックリンクは問題なく再生します:MSBuild内でmklinkコマンドを使用するTFSのPostBuildEvent

<PostBuildEvent> 
    del C:\foo\foo\bin\debug\my.config 
    mklink C:\bar\bar\bar\bar\bar\bar\bin\debug\my.config c:\baz\baz\my.config 
</PostBuildEvent> 

は、しかし、私は自動化され、この場合にただし、MSBuildのを使用して構築し、ビルドでTFS2015を使用して継続的インテグレーションをセットアップしようとしていますコマンド 'mklink C:\ bar \ bar \ bar \ bar \ bar \ bar \ bin \ debug \ my.config c:\ baz \ baz \ my.configをコード1'で終了します。

自動ビルドを使用してシンボリックリンクを再生成するにはどうすればよいですか?

+0

は古いXAMLビルドや新しいvNext構築を使用していますか? –

+0

ビルドエージェントマシンでMSBuildを使用してプロジェクトを手動で実行できますか?さらにエラーメッセージがありますか?ビルドエージェントマシンでパスが有効かどうかを確認しましたか? –

+0

私は新しいvNextビルドを使用しています。手動で実行しようとするか、CIがエラーメッセージをビルドをトリガーするのを許可するかどうかは、正確な構文は次のとおりです。 del C:\ foo \ foo \ bin \ debug \ my.config mklink C:\ bar \ bar \ bar \ bar \ bar \ bin \ debug \ my.config c:\ baz \ baz \ my.config "がコード1で終了しました。 予期しない終了コードが受信されましたmsbuild.exeから:1 すべてのパスが存在することを確認しました/スペルミスがありません。シンボリックリンクを作成するためにmklinkに「管理者として実行」権限が必要な場合があります。 MSBuildの? – NewJoizey

答えて

1

私は次のように私のcsprojファイル内にtrueに変数$(BuildingInsideVisualStudio)を設定することでこれを解決:私は、しかし、私が見た記事が間違って示したが、他の場所で可能な答えとしてこれを見ていた

<PropertyGroup Condition="'$(BuildingInsideVisualStudio)' == 'true'"> 
    <PostBuildEvent> 
     del C:\foo\foo\bin\debug\my.config 
     mklink C:\bar\bar\bar\bar\bar\bar\bin\debug\my.config c:\baz\baz\my.config 
    </PostBuildEvent> 
</PropertyGroup> 

csprojビルドスクリプトのコンテキスト内で変数を使用する方法を明確に示していませんでした。うまくいけば、これは誰かのために明確になるでしょう。

このMSDNの記事は有用であった: https://msdn.microsoft.com/en-us/library/ms171468(v=vs.140).aspx

関連する問題