我尝试将Visual Studio 2008项目从一个大型解决方案(包含100多个项目)迁移到Visual Studio 2013。当我使用VS 2013打开项目时,它会打开“单向升级”工具,然后单击升级。但对于某些项目,该计划没有反应。它只创建一个默认的.vcxproj文件,但不是完全转换的项目。它是一个虚拟项目文件,当它打开时,项目浏览器中没有任何内容。 解决方案转换特别在这些项目中停止并发生冻结。当我尝试单独转换这个项目时,它有时会转换为2013项目,而在某些项目中却没有。当我取消选中导致问题的项目时,转换会继续进行,但会在另一个项目中再次冻结。 我在这里查看了Microsoft的页面和其他转换问题,我的项目的框架版本没有任何问题,转换项目时我也没有遇到过文件复制替换。 样品: 这是我的项目的标题,它不会转换并导致VS 2013在转换过程中冻结:
<VisualStudioProject
ProjectType="Visual C++"
Version="9,00"
Name="GlobalDeployment"
ProjectGUID="{AC9CBDA0-2504-4D84-9361-E2F112F56A29}"
RootNamespace="GlobalDeployment"
Keyword="MakeFileProj"
TargetFrameworkVersion="196613"
>
And this is the one which has no problem in converting :
<VisualStudioProject
ProjectType="Visual C++"
Version="9,00"
Name="CommonUtilities"
ProjectGUID="{1FB295FC-DE93-42D1-8AC8-6D51DF017C74}"
RootNamespace="CommonUtility"
Keyword="Qt4VSv1.0"
TargetFrameworkVersion="196613"
>
我还检查了qt vs addin,但我之前转换了qt项目没有问题。 我检查了项目文件中声明的路径。他们是对的。 那么这个冻结问题的根源是什么呢? 感谢
答案 0 :(得分:0)
问题主要是由于使用包含'。'的“用户宏”造成的。字符。 我在VS2008的项目中有像rootdir这样的用户宏,而VS2013只是不接受定义这样的用户宏。当我将.vcproj文件中使用的用户宏替换为不包含'。'的单词时角色,通常是完成迁移的过程。 如果这不能解决您的问题,请尝试更改包含“。”的项目的.vsprops文件。用户宏中的字符。如果您使用的用户宏在.vsprops文件中包含点,则VS2013迁移器会将其更改为虚拟.prop文件。有时它无法生成prop文件和迁移冻结。 因此,当尝试转换许多项目的解决方案时,如果某些项目包含在某些地方VS2013中不允许的用户宏,则迁移会冻结。