我在.NET项目中引用了xunit.analyzers
。
我使用ildasm确定,该dll取决于Microsoft.CodeAnalysis.dll 1.2.0.0
。
我在项目中没有引用Microsoft.CodeAnalysis.dll
。它不在我的GAC中,也不在该项目中的任何其他NuGet软件包中,也不在/ bin文件夹中。
当我键入新代码时,上述分析器通常会发出错误。另外,我在.csproj中将其用作构建过程的一部分。
问题:
在TeamCity中运行构建时,出现错误,一旦从.csproj中删除xUnit分析器作为分析器项,该错误就会停止。我在本地未收到此错误。这是怎么回事?
CSC error CS8032: An instance of analyzer Xunit.Analyzers cannot be created from: Could not load file or assembly Microsoft.CodeAnalysis Version=1.2.0.0
答案 0 :(得分:0)
回答第1点和第2点
看来我的本地版本使用C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Roslyn\csc.exe
进行编译,该文件夹在其文件夹中有Microsoft.CodeAnalysis.dll
所需的适当版本的xunit.analyzer
。
但是,构建服务器使用C:\Program Files (x86)\MSBuild\14.0\Bin\csc.exe
,该版本的版本低于所需的版本,这会导致构建中断。
仅供参考和上下文,csc.exe
按顺序解析程序集依赖项:
csc.exe
的文件夹答案3
我假设,因为当我在本地编写代码时,分析器与Roslyn合作时,它也可以满足上面相同Roslyn文件夹中的依赖项。这是构建服务器上的争论点。