我有一个旧的MFC解决方案,里面有120个项目。 现在我试图用VisualC 2017编译它,但每个项目都会发出错误:
无法打开文件mfc140d.lib
打开项目属性,将平台工具集更改为VS2017 141,将语言版本更改为C ++ 17修复它。 但是,对于120个项目来说,这需要花费很多时间,然后在发布版本中使用相同的时间。哪些是项目文件中的设置,我可以以编程方式更改以设置这两个选项?我肯定找不到它们
答案 0 :(得分:0)
编写了一个python脚本,如果不存在,则将stdcpp17和v141添加到vcxproj文件中。也许有人找到它的用途:
def get_all_files(basedir):
for root, subfolders, files in os.walk(basedir):
for file in os.listdir(root):
yield root, file
def all_lines_from_file(file):
with open(file, 'r') as fd:
for line in fd.readlines():
yield line
def update_VCXPROJ():
standard = '<LanguageStandard>stdcpp17</LanguageStandard>'
toolset = '<PlatformToolset>v141</PlatformToolset>'
add1 = '<CharacterSet>MultiByte</CharacterSet>'
add2 = '<DebugInformationFormat>'
for root, file in get_all_files('c:/projects/6thcycle/sources/'):
if not file.lower().endswith('.vcxproj'):
continue
thisfile = ''
for line in all_lines_from_file('{0}/{1}'.format(root, file)):
if toolset in line or standard in line:
continue
if add1 in line:
line += ' {0}\n'.format(toolset)
elif add2 in line:
line += ' {0}\n'.format(standard)
thisfile += line
with open('{0}/{1}'.format(root, file), 'w') as fd:
fd.write(thisfile)
update_VCXPROJ()