我们有一个c#解决方案(框架4.5.2),在桌面上开发,在TFS服务器2015上编译。我们向其中添加了一个新的DLL项目(框架4.6.1),该项目使用Microsoft Code Analysis包。该解决方案正在桌面上毫无问题地进行编译(VS 2017)。我们将更改提交到TFS,在其中删除了一些编译器错误,例如:
类型'ValueType'在未引用的程序集中定义。 您必须添加对程序集“ netstandard,Version = 2.0.0.0, 文化=中性,PublicKeyToken = cc7b13ffcd2ddd51'。
该项目根据单词“ netstandard”包含多个参考:
<Reference Include="Microsoft.CodeAnalysis, Version=2.10.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.CodeAnalysis.Common.2.10.0\lib\netstandard1.3\Microsoft.CodeAnalysis.dll</HintPath>
</Reference>
<Reference Include="System.Collections.Immutable, Version=1.2.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Collections.Immutable.1.5.0\lib\netstandard2.0\System.Collections.Immutable.dll</HintPath>
</Reference>
当我添加引用时:
<Reference Include="netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" />
仍然报告编译错误。在桌面上,该解决方案仍然可以编译而不会发出警告或错误。下一步怎么办?
PS:不幸的是,解决方案中混合使用了框架版本。首选4.5.2,但是没有机会将MS Code Analysis软件包添加到具有此版本的dll项目中。 :(多个框架版本是问题的根本原因吗?