Windows 系统&x27;的属性页被msbuild.exe忽略

Windows 系统&x27;的属性页被msbuild.exe忽略,windows,visual-studio-2010,msbuild,Windows,Visual Studio 2010,Msbuild,我正在尝试使用MSBuild.exe从命令行运行自动生成。我的一个项目依赖于%AppData%\Local\Microsoft\MSBuild\v4.0\Microsoft.Cpp.Win32.user.props中的用户宏来获取其libpath 我可以在VS2010中毫无问题地构建这个项目,但是当试图从命令行构建它时,它失败了 上面的属性页文件是否可能只与IDE相关 默认情况下,用户道具文件(Microsoft.Cpp.$(Platform.user.props)直接导入vcxproj文件中。

我正在尝试使用
MSBuild.exe
从命令行运行自动生成。我的一个项目依赖于
%AppData%\Local\Microsoft\MSBuild\v4.0\Microsoft.Cpp.Win32.user.props
中的用户宏来获取其
libpath

我可以在VS2010中毫无问题地构建这个项目,但是当试图从命令行构建它时,它失败了


上面的属性页文件是否可能只与IDE相关

默认情况下,用户道具文件(Microsoft.Cpp.$(Platform.user.props)直接导入vcxproj文件中。默认条件表示它总是导入的。检查您的vcxproj

  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>
  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>

您是否在同一用户下构建项目文件

能否指定用于生成项目的命令行


从IDE生成VC项目时,VS指定属性BuildingInsideVisualStudio以指示它是从IDE生成的。

默认情况下,用户道具文件(Microsoft.Cpp.$(Platform).user.props)直接导入vcxproj文件中。默认条件表示它总是导入的。检查您的vcxproj

  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>
  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>

您是否在同一用户下构建项目文件

能否指定用于生成项目的命令行


从IDE生成VC项目时,VS指定属性BuildingInsideVisualStudio以指示它是从IDE生成的。

默认情况下,用户道具文件(Microsoft.Cpp.$(Platform).user.props)直接导入vcxproj文件中。默认条件表示它总是导入的。检查您的vcxproj

  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>
  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>

您是否在同一用户下构建项目文件

能否指定用于生成项目的命令行


从IDE生成VC项目时,VS指定属性BuildingInsideVisualStudio以指示它是从IDE生成的。

默认情况下,用户道具文件(Microsoft.Cpp.$(Platform).user.props)直接导入vcxproj文件中。默认条件表示它总是导入的。检查您的vcxproj

  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>
  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
  </ImportGroup>

您是否在同一用户下构建项目文件

能否指定用于生成项目的命令行


当VC项目是从IDE生成时,VS指定属性BuildingInsideVisualStudio以指示它是从IDE生成的。

结果是必须将当前路径指定为根路径,否则它将无法找到这些路径本身。添加MSBuild选项
/p:UserRootDir=C:\Users\user\AppData\Local\Microsoft\MSBuild\v4.0
解决了这个问题!它应该在不指定它的情况下工作。在vcxproj文件中,在导入Microsoft.Cpp.$(Platform).user.props之前,应该有以下文件“C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.Cpp.Default.props”定义$(LocalAppData)\Microsoft\MSBuild\v4.0可能的原因:-已定义名为UserRootDir的环境变量-已更改的环境。WinXP LocalAppData上的变量LocalAppData未定义,但msbuild可以处理它(在完全更新的Win上测试)。结果表明,msbuild必须以根用户身份获得当前路径,否则它将无法找到这些路径。添加MSBuild选项
/p:UserRootDir=C:\Users\user\AppData\Local\Microsoft\MSBuild\v4.0
解决了这个问题!它应该在不指定它的情况下工作。在vcxproj文件中,在导入Microsoft.Cpp.$(Platform).user.props之前,应该有以下文件“C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.Cpp.Default.props”定义$(LocalAppData)\Microsoft\MSBuild\v4.0可能的原因:-已定义名为UserRootDir的环境变量-已更改的环境。WinXP LocalAppData上的变量LocalAppData未定义,但msbuild可以处理它(在完全更新的Win上测试)。结果表明,msbuild必须以根用户身份获得当前路径,否则它将无法找到这些路径。添加MSBuild选项
/p:UserRootDir=C:\Users\user\AppData\Local\Microsoft\MSBuild\v4.0
解决了这个问题!它应该在不指定它的情况下工作。在vcxproj文件中,在导入Microsoft.Cpp.$(Platform).user.props之前,应该有以下文件“C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.Cpp.Default.props”定义$(LocalAppData)\Microsoft\MSBuild\v4.0可能的原因:-已定义名为UserRootDir的环境变量-已更改的环境。WinXP LocalAppData上的变量LocalAppData未定义,但msbuild可以处理它(在完全更新的Win上测试)。结果表明,msbuild必须以根用户身份获得当前路径,否则它将无法找到这些路径。添加MSBuild选项
/p:UserRootDir=C:\Users\user\AppData\Local\Microsoft\MSBuild\v4.0
解决了这个问题!它应该在不指定它的情况下工作。在vcxproj文件中,在导入Microsoft.Cpp.$(Platform).user.props之前,应该有以下文件“C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.Cpp.Default.props”定义$(LocalAppData)\Microsoft\MSBuild\v4.0可能的原因:-已定义名为UserRootDir的环境变量-已更改的环境。WinXP LocalAppData上的变量LocalAppData未定义,但msbuild可以处理它(在完全更新的Win上测试)