VS2015 發布常見問題
1. 發布時預編譯
所示如下:
遇到的問題
使用abp時引用了System.Collections.Immutable.dll,但是項目編譯一直出錯,
排查:
查看項目引用,可看到System.Collections.Immutable.dll來自 "\packages\Microsoft.Net.Compilers.1.0.0\tools"之下,版本為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
VS2015 發布常見問題