【发布时间】:2015-04-10 17:52:24
【问题描述】:
我在 Visual Studio 2012 中有一个解决方案,其中包含 170 个 C# 项目。我需要将所有项目从 .NET Framework 4.0 重新定位到 4.5.2。
我更喜欢让 Visual Studio 处理这个问题,方法是进入每个项目的属性,更改目标框架,并让 Visual Studio 对 .csproj 文件进行任何必要的更改。
我注意到这些更改包括向 .csproj 添加一些新的 XML 标记,具体取决于当前项目的某些属性。
如何在不使用替换文本工具替换目标版本号的情况下批量重定向所有 170 个 C# 项目?我希望 Visual Studio 进行所有必要的标记修改和添加,单独替换不会允许这种情况发生。
【问题讨论】:
-
我不知道有什么方法可以自动执行此操作。我认为您最好的选择是使用键盘命令的标准 Windows 宏记录器。但是,我会在一段时间而不是尝试将它们批处理在一起,因为在所有情况下可能很难确定 VS 何时完成其工作。
-
不,你不应该这样做。 特别是不是 4.5.2,它没有有用的新类型,并且不太可能被未来的多目标包覆盖。就像 4.0x 不是一样。一次做这个一个项目,并且只做那些需要它的项目。您实际上想要添加新的参考程序集并修改代码以使用它们的那些。如果您想忽略此建议,您可能会这样做,然后使用 Edit > Find and Replace > Replace in Files 来替换 *.csproj 文件中的 TargetFrameworkVersion 元素。确保您的源代码控制是可靠的。
-
@HansPassant 根据我的问题,您的查找/替换解决方案正是我不想做的。我需要一个更强大的解决方案。
-
@GrantWinney 我 /know/ 它不起作用,因为我已经尝试过 Find/Replace,如果您使用该方法,那么 Visual Studio 本来会执行的其他 .csproj 更改将不会实现。
-
@GrantWinney 目标框架迁移器扩展正是我想要的。如果您可以创建答案,我会将其标记为正确。谢谢!
标签: c# visual-studio visual-studio-2012 solution