我的VS2010 C ++项目,发布配置,输出目录为:
$(SolutionDir)\..\_build\Release\
中间目录是:
$(SolutionDir)\..\_build\Release\Obj\$(TargetName)\
构建日志文件只是默认设置:
$(IntDir)\$(MSBuildProjectName).log
但是,构建日志文件没有写入我期望的位置。而是写成:
$(SolutionDir)\_build\Release\Obj\$(TargetName)\$(MSBuildProjectName).log
在编写日志文件时,好像从路径中删除了..
。但是,所有其他中间文件都写入正确的目录。
日志编写者是否改变了我的路径?这似乎是90%正确,但它缺少一个重要的..
。有什么我需要做的才能让它正确读取?
在玩完它之后,我发现 IncrediBuild 导致了这个问题。没有IncrediBuild的构建会将日志文件放在正确的位置,但是使用IncrediBuild时,日志文件将进入错误的目录。
答案 0 :(得分:2)
尝试
<Path>$(SolutionDir)..\Output\$(ProjectName).log</Path>
它对我有用。 SolutionDir最后已经有一个\
,所以你最终会在路径中找到\\
,我认为这是问题所在。
答案 1 :(得分:0)
好的,如果我想将日志文件放在Output文件夹中,该文件夹比当前解决方案文件位置高一级,如下所示:
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。如果我发现更进一步,我会更新这个答案。