批量升级VS2005的解决方案,VS2008

问题描述:

是否可以批量升级(在同一时间很多)VS 2005个项目,VS 2008批量升级VS2005的解决方案,VS2008

我知道我可以一次打开一个,但是,我想一次选择10来升级并添加到新的解决方案。

我知道没有自动工具(除非最近开发了一些商业解决方案)。但是如果你有大量的项目要转换(100s),那么写一个小程序为你做这件事可能是值得的(毕竟我们是程序员)。项目文件是有效的XML文件。只需手动转换一个或两个,并记下项目文件中的差异/更改。当你从2005年升级到2008年时,它并没有改变那么多。编写一个程序来对一大批项目文件做相同的修改并不会太难。

我总是使用免费的AutoHotkey执行重复的任务。

如果您使用一个项目记录您的鼠标/键盘操作,则可以重新运行这些操作以执行一组项目。

如果某些项目需要任何不同的选项,您可以手动编辑该宏。

我最近遇到了同样的问题,使用Windows PowerShell脚本来获得使用Visual Studio中的/upgrade命令行开关

$slnFiles = ls C:\source -Filter *.sln -Recurse 
$devenv = "C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe" 
$i = 1 
foreach ($sln in $slnFiles) 
{ 
    "Upgrading Solution " + $i++ + ": " + $sln.FullName 
    &$devenv /upgrade $sln.FullName 
} 
"Done!" 

凯西的稍加修改版本,这是一个用于VS做升级对我来说并等待转换完成。这也将解决方案文件复制到.sln之前的一个带有x的文件。

$slnFiles = ls "C:\projects\source\" -Filter *.sln -Recurse 
$devenv = "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe" 
$i = 1 
foreach ($sln in $slnFiles) 
{ 
    "Upgrading Solution " + $i++ + ": " + $sln.FullName 
    Start-Process -Wait $devenv -ArgumentList /NoSplash,/upgrade,$sln.FullName 
    $name = $sln.name -replace ".sln", "x.sln" 
    Rename-Item $sln.FullName -NewName $name 
} 
"Done!"