3

私の VS2010 C++ プロジェクト、リリース構成には、次の出力ディレクトリがあります。

$(SolutionDir)\..\_build\Release\

中間ディレクトリは次のとおりです。

$(SolutionDir)\..\_build\Release\Obj\$(TargetName)\

Build Log File はデフォルト設定です。

$(IntDir)\$(MSBuildProjectName).log

ただし、ビルド ログ ファイルが期待する場所に書き込まれていません。代わりに次のように書き込まれています。

$(SolutionDir)\_build\Release\Obj\$(TargetName)\$(MSBuildProjectName).log

..ログ ファイルを書き込むときにパスから削除されているかのようです。ただし、他のすべての中間ファイルは正しいディレクトリに書き込まれます。

ログ ライターによってパスが変更されていますか? 90% 正しいように見えますが、重要な... 正しく読むために何かする必要がありますか?


アップデート:

いろいろいじってみたところ、IncrediBuildが問題の原因であることがわかりました。IncrediBuild を使用せずにビルドすると、ログ ファイルは正しい場所に配置されますが、IncrediBuild を使用すると、ログ ファイルは間違ったディレクトリに配置されます。

4

2 に答える 2

2

試す

<Path>$(SolutionDir)..\Output\$(ProjectName).log</Path>

わたしにはできる。SolutionDir はすでに\末尾にあるため、最終的\\にはパスになりますが、これが問題だと思います。

于 2013-10-30T16:24:58.400 に答える
0

さて、次のように、現在のソリューション ファイルの場所よりも 1 レベル上の出力フォルダーにログ ファイルを配置するとします。

MyTestProject
    |___ MyTestProject.sln
    |___ MyTestProjectFolder
    |___ Debug
Output
    |___ MyTestProject.log

vs 2010 プロジェクト ファイルで、以下を使用する代わりに:

<BuildLog>
  <Path>$(SolutionDir)\..\Output\$(ProjectName).log</Path>
</BuildLog>

私は使用する必要があります:

<BuildLog>
  <Path>$(SolutionDir)\..\..\Output\$(ProjectName).log</Path>
</BuildLog>

OutDir や IntDir など、他のすべてのパスに 2 つの ".." を使用する必要がないため、これは少し奇妙です。さらに何かが見つかった場合は、この回答を更新します。

于 2013-03-12T18:22:32.503 に答える