为什么在构建VS构建期间msbuild失败?

时间:2018-03-23 18:52:35

标签: msbuild visual-studio-2017 tfsbuild

我们有一个复杂的解决方案(22个子项目,其中一个是网站),不会使用TFS Build构建。如果我在构建服务器上打开解决方案,代码在Visual Studio内编译得很好,但如果我打开CMD提示并尝试 MSBUILD piccsserver.sln ,我会收到此错误:

"C:\TFS2017_agent\_work\4\s\CorePlatform\PICCS\Main\src\piccsserver.sln" 
    (default target) (1) ->
"C:\TFS2017_agent\_work\4\s\CorePlatform\PICCS\Main\src\PICCS_WebHost.metaproj"
 (default target) (24) ->(Build target) ->  ASPNETCOMPILER : error ASPCONFIG: Could not load file or assembly 'Newtonsoft.Json, Version=11.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The located assembly's manifest definition does not mat
ch the assembly reference. (Exception from HRESULT: 0x80131040) [C:\TFS2017_age
nt\_work\4\s\CorePlatform\PICCS\Main\src\PICCS_WebHost.metaproj]

我注意到当我从VS内部构建并查看网站的bin文件夹中的NewtonSoft.Json.dll版本时,版本是11.0.1,这是我所期望的,但是当我从命令提示符版本为4.5.11.15520。

这到底是怎么回事?不在VS内构建使用MSBUILD吗?

1 个答案:

答案 0 :(得分:1)

我得到了它的工作。我将Web.config中newVersion的值从11.0.0.0更改为11.0.1.0。不知道为什么只停止从命令行构建,但现在它在VS和命令提示符下构建。

由此:

<dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-11.0.0." newVersion="11.0.0.0" />
</dependentAssembly>

到此:

<dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-11.0.0." newVersion="11.0.1.0" />
</dependentAssembly>