无法在VS2005中将vcproj转换为2010年的vcxproj

时间:2012-01-01 13:36:47

标签: c++ visual-studio-2010

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

转换项目文件'C:\ temp \ Win32GlobAgent \ Win32GlobAgent.vcproj'。无法读取项目文件“Win32GlobAgent.vcxproj”。 C:\ Program Files \ MSBuild \ Microsoft.Cpp \ v4.0 \ Microsoft.CppCommon.targets(36,5):表达式“[System.IO.Path] :: Combine(C:\ temp \ Win32GlobAgent \,” C:\ temp \ Win32GlobAgent \“/ bin \ Win32GlobAgent.dll)”无法评估。路径中的非法字符。

我需要帮助。

我还尝试过第一次转换到2008年然后到2010年但没有帮助。

由于

2 个答案:

答案 0 :(得分:2)

  

“C:\ TEMP \ Win32GlobAgent \”/ BIN \ Win32GlobAgent.dll

从错误消息中可以清楚地看到,它正在跳过字符串内部而不是结尾的双引号。这可能是由/bin上的正斜杠引起的。

在.vcproj文件中搜索/bin并使用文本编辑器更正为\binbin。记事本会很好。

答案 1 :(得分:1)

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

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

到此(关于.. \ Lib \ lib.tlb的通知引用被删除:

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

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