3

我的 VS2010 C++ 项目,发布配置,有一个输出目录:

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

中间目录是:

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

构建日志文件只是默认设置:

$(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

好的,假设我想将日志文件放在比当前解决方案文件位置高一级的输出文件夹中,如下所示:

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>

这有点奇怪,因为我不必为所有其他路径使用 2“..”,例如 OutDir 和 IntDir。如果我发现任何进一步的信息,我会更新这个答案。

于 2013-03-12T18:22:32.503 回答