无法将VS2005中的vcproj转换为2010中的vcproj

Cannot convert vcproj in VS2005 to vcxproj in 2010

本文关键字:vcproj 中的 2010 转换 VS2005      更新时间:2023-10-16

我尝试将vcprojects从2005年转换为2010年,我得到以下错误:

转换项目文件"C:tempWin32GlobAgentWin32GlobAgent.vcproj"。无法读取项目文件"Win32GlobAgent.vcxproj"。C:Program FilesMSBuild Microsoft.Cppv4.0Microsoft.CppCommon.targets(36,5):表达式"[System.IO. io . net]Path]::Combine(C:tempWin32GlobAgent, "C:tempWin32GlobAgent"/binWin32GlobAgent.dll)"无法求值。path.

中的非法字符

我需要帮助。

我也尝试先转换到2008年,然后转换到2010年,但没有帮助。

谢谢

" C: temp Win32GlobAgent "/bin Win32GlobAgent.dll

从错误消息中可以很清楚地看到,它被字符串内部的双引号绊倒了,而不是末尾。这可能是由于/bin上的正斜杠引起的。

在.vcproj文件中搜索"/bin",使用文本编辑器修改为"bin"或"bin"。记事本就可以了

在新的vcxproj文件中没有非法符号。然而,在VS2013/VS2012中,文本元素中的引号处理方式不同。他们在过去是好的,但现在导致错误报告。要解决这个问题,只需按照Hans Passant的建议手动编辑vcxproj文件。例如,修改

<Midl Include="doc.idl">
  <TypeLibraryName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"..Liblib.tlb"</TypeLibraryName>
  ...
</Midl>

to this (notice .Lib Lib .)TLB被移除:

<Midl Include="doc.idl">
  <TypeLibraryName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..Liblib.tlb</TypeLibraryName>
  ...
</Midl>

对Midl元素中的所有其他元素重复此步骤。