将解决方案中的所有项目重新定向到.NET 4.5.2

17 浏览
0 Comments

将解决方案中的所有项目重新定向到.NET 4.5.2

我在Visual Studio 2012中有一个解决方案,其中包含170个C#项目。我需要将所有项目从.NET Framework 4.0重新定向到4.5.2。

我希望通过进入每个项目的属性,更改目标框架,让Visual Studio对.csproj文件进行必要的更改来处理此操作。

我注意到这些更改包括根据当前项目的某些属性添加一些新的XML标签到.csproj中。

我该如何批量重新定向这170个C#项目,而不仅仅使用替换文本工具来替换目标版本号?我希望Visual Studio能够进行所有必要的标签修改和添加,而仅仅替换无法实现这一点。

0
0 Comments

问题:在解决方案中重新定位所有项目到.NET 4.5.2的原因是什么?以及解决方法是什么?

原因:由于“目标框架迁移工具”损坏,我自己编写了一个搜索/替换工具。基本上,它将v4.6.x更改为v4.7.2,然后将文件转换回使用臭名昭著的DOS的CRLF:

find . \( -iname '*.csproj' -o -iname '*.vcxproj' -o -iname 'app.config' \) \
 -exec grep -Z -l 'v4\.6\..' \{} \; | xargs -0 sed -i 's/v4\.6\../v4.7.2/'  
find . \( -iname '*.csproj' -o -iname '*.vcxproj' -o -iname 'app.config' \) \
 -exec grep -Z -l 'v4\.7\..' \{} \; | xargs -0 unix2dos

解决方法:我发现了这个解决方法,并且使用Update-Package -ReInstall命令也非常有效。谢谢!这对我来说完全有效。谢谢您提供的解决方案。

对于PowerShell版本,请参考stackoverflow.com/a/2837891/463425

0
0 Comments

问题的原因是.NET Framework解决方案中的项目需要重新定位到.NET 4.5.2。解决方法是在package.config和*.csproj文件中进行替换操作,将目标框架版本更新为4.7.2。在Visual Studio 2019中,使用"replace all"功能无法完成替换操作,需要重复使用"find next"功能。此外,也需要注意替换过程中可能出现的包版本错误以及对应的dll引用问题。解决方案中还提到,除了package.config和*.csproj文件外,还需要更新web.config文件中的一些部分,以确保项目的一致性和完整性。

0
0 Comments

问题:如何将解决方案中的所有项目重定向到.NET 4.5.2?

原因:MSDN文档中没有详细讨论如何一次性将更改应用于整个解决方案,也没有看到VS中支持此功能的函数。

解决方法:可以使用名为"Target Framework Migrator"的扩展来实现。该扩展可在Visual Studio库中找到,并支持升级到4.5.2版本(以及更新版本)。如果感兴趣,可以在GitHub上找到其源代码。

补充信息:缺少此功能可能是有意为之的,而不仅仅是遗漏。可能是因为微软认为只有需要新框架的项目才会升级。值得一提的是,如果升级了某些与其他解决方案共享的项目,那么在升级这些解决方案之前可能无法构建这些解决方案。

如果您只有一个(或几个)解决方案,并且希望一次性升级所有项目,那么上述工具可能适合您。

有人遇到与Anas(评论中)相同的错误,请查看现有的PR和问题以获取修复方法,但您可能需要自行应用这些修复方法。例如,有人发布了一个用于.NET Framework v 4.7.1的修复方法。希望这些修复方法会被合并,但不必抱太大希望。

如果其他人遇到与Anas相同的错误,请查看GitHub上的一个问题,该问题是几周前发布的,以及另一个可能相关的问题,该问题是2017年的。如果您遇到相同的问题,请考虑给它们点赞并添加更多细节。

在更新到4.7之后,VS 2017更新15.5.5上的“目标框架迁移”工具出现了错误“无效参数”。

在我今天使用VS 2017 15.7对Framework 4.7进行迁移时成功了。

我非常怀疑微软会有意删除对用户有益的功能...更有可能是他们没有考虑到或不需要支持...将其交给社区吧。

该工具在最新的VS2017 v15.8上完全无法加载和迁移到4.7。

我在现有问题中发表了评论。我实际上是通过在项目和配置文件中进行查找/替换来完成的。

提醒大家,它不支持Visual Studio 2019。

开发者在2019年12月将其传给了其他人,可以再次编辑你的(好的)答案。

在VS 2019中迁移到4.7.2。MarketPlace上的软件包已过时。下载并编译github.com/TargetFrameworkMigrator/TargetFrameworkMigrator VSIX项目。您应该在../bin/debug/文件夹中看到VSIX扩展。它还包括4.8框架。

在更新项目的目标框架后,应重新安装所有NuGet包。如果需要的话,VS会提醒你,但你也可以自行检查:learn.microsoft.com/en-us/nuget/consume-packages/reinstalling-and-updating-packages。

0