VS2015 发布常见问题

1. 发布时预编译

所示如下:

遇到的问题

  使用abp时引用了System.Collections.Immutable.dll,但是项目编译一直出错,

排查:

  查看项目引用,可看到System.Collections.Immutable.dll来自 "packagesMicrosoft.Net.Compilers.1.0.0 ools"之下,版本为1.0比abp要使用的1.2版本低。

  引用这个原因是,nuget在查找时按序查询,最先找到的dll会被先引用,竟然无视版本号,估计是个bug。

  但和预编译有啥关系,因为开启预编译需要引用了Microsoft.Net.Compilers.1.0.0,Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0.

  而Microsoft.Net.Compilers.1.0.0依赖于

  System.Collections.Immutable.dll、System.Reflection.Metadata.dll、Microsoft.CodeAnalysis.dll、

  Microsoft.Build.Tasks.CodeAnalysis.dll、Microsoft.CodeAnalysis.CSharp.dll、Microsoft.CodeAnalysis.VisualBasic.dll

  这些组件,组件是独立特定版本的dll,才导致冲突,安装的时候控制台其实会提示,这也是疏忽的原因,导致花很长时间排错。  

解决:

  1.升级Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0,Microsoft.Net.Compilers其实是被DotNetCompilerPlatform依赖的。

  2. 直接去掉预编译

参考:

https://www.cnblogs.com/liangjiang/p/7890678.html

原文地址:https://www.cnblogs.com/xcsn/p/8438245.html