2010年无法将VS2005中的vcproj转换为vcxproj
Posted
技术标签:
【中文标题】2010年无法将VS2005中的vcproj转换为vcxproj【英文标题】:Cannot convert vcproj in VS2005 to vcxproj in 2010 【发布时间】:2012-01-01 13:36:47 【问题描述】:我尝试将 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 年,但没有帮助。
谢谢
【问题讨论】:
【参考方案1】:"C:\temp\Win32GlobAgent\"/bin\Win32GlobAgent.dll
从错误消息中非常清楚,它是在字符串内部而不是结尾的双引号上绊倒。这可能是由/bin
上的正斜杠引起的。
在 .vcproj 文件中搜索 /bin
并使用文本编辑器更正为 \bin
或 bin
。记事本就可以了。
【讨论】:
【参考方案2】:新的 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 元素内的所有其他元素重复此步骤。
【讨论】:
以上是关于2010年无法将VS2005中的vcproj转换为vcxproj的主要内容,如果未能解决你的问题,请参考以下文章
将crm 4插件项目从visual studio 2005升级到visual studio 2010
VS 2010 中的 C++ 中的 static_cast 无法从 void* 转换为 size_t 错误
如何将VS2003的XslTransform转换为VS2005的XslCompiledTransform?