如何在Windows下用Visual Studio 2012构建Xalan-C1.11?是否可行?
这个问题我之前帮朋友排查过类似的,本质是VS2012升级VC10解决方案时,部分项目的引用关联失效了,或者解决方案文件里残留了无效的项目条目。你可以按下面的步骤逐一排查:
检查解决方案中的无效项目引用
打开Xalan.sln后,在解决方案资源管理器里扫一遍所有项目,找到那些显示为“不可用”、名字为空或者图标异常的项目。右键选择移除(如果这个项目确实不需要的话);如果是必要项目,就点击添加 -> 现有项目,找到对应的.vcxproj文件重新添加进来,确保路径是正确的。手动修复解决方案文件(.sln)
有时候VS升级过程中会生成无效的项目条目,你可以用记事本或者VS的文本编辑器直接打开Xalan.sln文件,搜索类似这样的行:Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "", "", "{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}"这些就是没有指定项目文件路径的无效条目,直接删除这些行,保存后重新打开解决方案。
核对项目文件的存在性与路径
确认xalan-c-1.11-src\xalan-c-1.11\c\Projects\Win32\VC10目录下的所有.vcxproj文件都完整存在,没有被改名或者误删除。如果某些项目文件缺失,你可以从Xalan-C的源码压缩包中重新提取对应的项目文件,或者检查是否有其他目录下的VS2012适配项目可以替代。清理缓存并重新生成
先执行菜单栏的Build -> Clean Solution,然后找到解决方案目录下的.suo文件(这是VS的用户配置缓存文件)并删除,关闭VS后重新打开加载解决方案,再尝试构建。这个操作能解决很多升级后缓存导致的异常。统一项目平台与工具集设置
右键解决方案选择属性,进入Configuration Properties -> Configuration页面,确认所有项目的平台(比如Win32)和配置(Debug/Release)都保持一致,没有项目出现不兼容的设置。
另外,对每个项目右键选择属性,在General -> Platform Toolset中确保设置为Visual Studio 2012 (v110),而不是原来的VC10工具集,避免工具集不匹配导致的构建问题。
内容的提问来源于stack exchange,提问作者Mallesh

