0

私は TFS2012 で Visual Studio 2012 ビルド定義を使用しており、.csproj と .vcproj (それぞれ c# と c++) の両方を含むソリューションをビルドするように 1 つの定義が設定されています。ビルド サーバーでソリューションのローカル ビルドを実行すると、問題なく動作します。ビルド出力は、すべてのプロジェクト (最も重要なのは C++ プロジェクト) がビルドされていることを示しています。プレビルド、ポストビルド、全体で 9 ヤード。ただし、まったく同じソリューションをビルドするビルド定義を実行すると、C++ プロジェクトがビルドされないように見えます。ビルド レポートはエラーなしで返されますが、ビルド ログは C++ プロジェクトに対して次の情報のみを返します。

C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE....\vc\vcpackages\VCBuild.exe /override:"[ソリューション ファイルへのパス].Mixed Platforms.Debug.vsprops" [へのパスプロジェクト ファイル] "Debug|Win32"

私が期待しているのは、はるかに長いビルド レポート (プロジェクトが実際にビルドされたことを示す) ですが、残念ながら、C++ プロジェクトをビルドする試みが欠けているように見えます。言うまでもなく、ビルド出力には、c++ プロジェクトからのアセンブリまたは .pdb が含まれていません。

Visual Studio 2008 がインストールされていないことが問題であるという考えをなくすために、ビルド サーバーには Visual Studio 2008 がインストールされており、すべての正しいファイル (vcbuild. exe および vcprojectengine.dll)。

C++ プロジェクトがビルドされない理由はありますか? 助けてくれてありがとう!

更新_ _ _ _ _ _ _ _ _ ____

問題が変更されました。かなりスリムなビルド ログが原因で、c++ プロジェクトがビルドされていないという印象を受けました (指定されたビルド定義のドロップ場所にプロジェクトの出力が表示されなかったため、この考えで実行しました)。少しの調査 (およびいくつかの非常に役立つ提案!) の後、問題は C++ プロジェクトの出力ディレクトリ プロパティが C# プロパティのように動的に変更されないという単純な問題に絞り込まれました。これらの値を手動で変更してビルド定義を実行すると、ビルド定義が C++ プロジェクト ファイルの既定の出力ディレクトリ プロパティを使用することが証明されました。

私の一時的な解決策は、これらの出力を必要なフォルダーにコピーするために少しスクリプトを作成することです。私の投稿の質問をさらに進めるために、これらの C++ プロジェクトの出力ディレクトリ プロパティを C# プロジェクトのように動的に変更する設定はありますか?

4

3 に答える 3

0

返信ありがとうございます。残念ながら、私は構成マネージャーに何度も対処してきました。ソリューションは c# と c++ プロジェクトの混合であるため、現在実行している構成/プラットフォームは DEBUG/MIXED PLATFORMS です。すべてのプロジェクトがビルド対象として選択され、さらに DEBUG/WIN32 ビルド定義を実行し (c++ プロジェクトのみを対象とする)、各 c++ プロジェクトに関してログから受け取った唯一の出力は次のとおりです。

C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE....\vc\vcpackages\VCBuild.exe /override:C:[ソリューションへのパス].Win32.Debug.vsprops C:[へのパスプロジェクト ファイル] "Debug|Win32"

これが、私の C++ プロジェクトに関するログ ファイルの唯一の出力です。ビルドプロセスが何をしようとしているのか、何か考えはありますか?

于 2013-07-25T16:17:21.770 に答える
0

あなたの問題は、私自身が遭遇したばかりのものだと思います。デフォルトでは、TFS2012 は、プロジェクトで定義したものとは異なるビルド出力構造を使用します。

したがって、出力ディレクトリが「Debug」または「....\Debug」などであると予想している場合、失敗します。

解決策は、ビルド プロセス テンプレートの xaml ファイルをテキスト エディターで開くことです。「OutDir」を検索し、それらのエントリを削除します。(私は1つだけ持っていました)

これを学んだリンクは次のとおりです。

http://blogs.msdn.com/b/jimlamb/archive/2010/04/13/customizableoutdir-in-tfs-2010.aspx

http://social.msdn.microsoft.com/Forums/vstudio/en-US/7126f1a3-9437-416a-88ed-2f63f84b2937/tfs-buildmsbuild-2010-bin-folder-auto-redirection-to-binaries-folder- not-redirecting-all-projects?forum=tfsbuild

于 2014-02-21T16:36:02.923 に答える