【问题标题】:How to fix MSB8029: Intermediate directory or Output directory cannot reside under the Temporary directory in VS2013如何修复 MSB8029:中间目录或输出目录不能驻留在 VS2013 中的临时目录下
【发布时间】:2016-04-17 02:15:08
【问题描述】:

Visual Studio 每次编译都会抱怨 warning MSB8029: The Intermediate directory or Output directory cannot reside under the Temporary directory as it could lead to issues with incremental build.

我正在检查项目并更改了输出目录中间目录,但我仍然收到解决方案中每个项目的消息。

我该如何解决这个问题?

【问题讨论】:

    标签: visual-studio-2013


    【解决方案1】:

    我找到了答案 - 我缺少环境变量。添加它们并重新启动后,问题就消失了。

    如何在 Windows 7 上修复它

    1. 确保中间和输出目录不在临时目录下!如果问题仍然存在:
    2. 进入环境变量(开始->计算机->右键->属性->高级系统设置->高级选项卡->环境变量)
    3. 添加到用户变量 变量名:TEMP,变量值:%APPDATA%\Local\Temp
    4. 添加到用户变量变量名:TMP,变量值:%APPDATA%\Local\Temp
    5. 添加到系统变量 变量名:TEMP,变量值:C:\Windows\Temp
    6. 添加到系统变量 变量名:TMP,变量值:C:\Windows\Temp
    7. 重启

    【讨论】:

      【解决方案2】:

      这是一个真正无用的信息警告。我认为将所有中间文件定向到临时文件夹是一个好主意。至少在 C++ 方面。

      警告是由于 VS2017 Microsoft.CppBuild.targets(395) 中的设置引起的:

      <VCMessage Code="MSB8029" Type="Warning" Condition="'$(DesignTimeBuild)'!='true' and '$(IgnoreWarnIntDirInTempDetected)' != 'true' and ('$(_IntDirFullpath.StartsWith($(Tmp), true, null))' == 'true' or '$(_IntDirFullpath.StartsWith($(Temp), true, null))' == 'true' or '$(_OutDirFullpath.StartsWith($(Tmp), true, null))' == 'true' or '$(_OutDirFullpath.StartsWith($(Temp), true, null))' == 'true')"/>
      

      VS 版本之间的实现有点不同,但解决方案是一样的。您只需要通过分配一个宏来禁用触发器。

      1. 打开或创建您的个人属性文件Microsoft.Cpp.x64.user.propsMicrosoft.Cpp.Win32.user.props
      2. 添加宏IgnoreWarnIntDirInTempDetected,值为true

      完成

      该解决方案同样适用于 VS2013 和 VS2015。个人属性文件位于:

      %LOCALAPPDATA%\Microsoft\MSBuild\v4.0
      

      【讨论】:

        【解决方案3】:

        对于那些使用 VS 2019(可能是后者)遇到此问题的人。 (与 TEMP 环境变量无关)。
        VS 2019 不支持用户设置,你应该使用项目设置来禁用警告。 知道 MSBuild 也从环境中评估属性,您可以定义与 MSBuild 属性同名的环境变量。在要禁用警告的会话中创建以下属性
        set IgnoreWarnIntDirInTempDetected=true
        并开始构建。

        【讨论】:

          猜你喜欢
          • 2015-03-17
          • 1970-01-01
          • 2021-11-16
          • 2021-09-23
          • 1970-01-01
          • 2010-12-17
          • 2011-08-07
          • 1970-01-01
          • 2013-11-07
          相关资源
          最近更新 更多