Lau*_*ery 5 .net c# asp.net-core
我在桌面解决方案中使用.NET标准库,因此我可以在桌面和Web解决方案之间共享这些库.但是,我现在看到增量构建问题.有没有其他人经历过这个或设法修复它?
我可以看到.NET标准库有一些增量构建功能,如果我使用"dotnet build"在命令行上构建它们,例如1秒,然后如果我在该库中进行代码更改并运行再过需要2秒钟.如果我第三次跑,这可以追溯到1秒.
但是,在纯.NET框架应用程序(如控制台应用程序或wpf应用程序)中,传统上如果不进行代码更改,那么在visual studio中它甚至不会尝试构建项目.它简单地说"1最新".我看到.NET标准库总是被重新复制到输出目录,它们也会导致我的整个WPF项目每次都重建.一段时间后,如果每个代码更改需要5秒钟来构建,这会开始变得烦人!
我至少可以给你部分答案。每次都复制出二进制文件的问题微软解释为本质上不支持更新到更高的目标框架版本。
此时,我们不会对工具附带的兼容垫片进行任何智能修剪,因此最终会复制所有这些垫片。如果您(或您的依赖项)不依赖它们,则删除/不部署它们是安全的,但盲目地这样做可能会破坏您的一些依赖项。
这应该在 4.7.1 中修复
值得一提的是,使用 .NET Framework 4.7.1 及更高版本,您无需为 .NET Standard 部署任何额外的文件。如今,如果您以 Xamarin 或 .NET Core 为目标,情况就已经如此。
至于为什么它总是复制,而不是有选择地复制,我不确定。我已经检查了构建日志,我相信这些文件尚未正确添加到构建目标的输出列表中,但很难诊断。Visual Studio 还具有完全避免调用 MSBuild 的智能方法,因此 MSBuild 脚本中用于跳过目标的逻辑甚至不必运行。Visual Studio 基本上是一个黑匣子,但根据你和我观察到的行为,我怀疑这个逻辑也被破坏了。
这是一个令人沮丧的问题,因为仍然有充分的理由以旧版本的 .NET Framework 为目标,例如,如果某个库分发给可能使用 Visual Studio 2013 对其进行构建的客户,并且不能期望进行更新。
归档时间: |
|
查看次数: |
524 次 |
最近记录: |