gpt4 book ai didi

asp.net - 使用 TeamCity 构建服务器在 .NET 4.0 ASP.Net 解决方案 + google-api-dotnet-client 中构建错误

转载 作者:行者123 更新时间:2023-12-04 21:40:37 25 4
gpt4 key购买 nike

我们已从 TFS 2010 迁移到 TeamCity,但在构建解决方案文件时遇到了问题。

我们正在使用 .NET 4.0。
众所周知,Google 库在尝试构建它时会导致 .NET 4.0 + system.net.http 出现问题。
我们设法让这个设置在 TFS(它使用 MSBuild 4.0)上正常工作。

App.config 应该有正确的程序集绑定(bind):

<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.6.9.0" newVersion="2.6.9.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Threading.Tasks" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.6.9.0" newVersion="2.6.9.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.2.28.0" newVersion="2.2.28.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Net.Http.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.2.28.0" newVersion="2.2.28.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>

我们已经尝试过:
- 使用不同的运行器类型:Visual Studio、MSbuild
- 直接引用所有 Dll(google+system.net.http+etc.)
- 在这些 DLL 上使用直接 Nuget 包恢复(它恢复一切正常)

构建错误是:
ResolveAssemblyReference] C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets(1635, 5):警告 MSB3268:主要引用“Google.Apis.Auth.PlatformServices, Version=1.9.0.26016 , Culture=neutral, processorArchitecture=MSIL” 无法解析,因为它间接依赖于框架程序集“System.Net.Http, Version=2.2.22.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”当前目标框架。 “.NETFramework,版本=v4.0”。要解决此问题,请删除引用“Google.Apis.Auth.PlatformServices, Version=1.9.0.26016, Culture=neutral, processorArchitecture=MSIL”或将您的应用程序重新定位到包含“System.Net.Http, Version =2.2.22.0,文化=中性,PublicKeyToken=b03f5f7f11d50a3a"。

其次是:
[07:58:29]W:[MSBuild 输出] C:\BuildAgent\work\dda43f1992063b18\Integrations\CalendarSync\Devices\Google Calendar\GoogleCalendarDevice.vb(788,78):错误 BC30009:程序集“Google. APIs,Version=1.9.0.23042,Culture=neutral,PublicKeyToken=null',包含实现的接口(interface)“Google.Apis.Requests.IDirectResponseSchema”。将一个添加到您的项目中。 [C:\BuildAgent\work\dda43f1992063b18\Integrations\CalendarSync\Severa.Integrations.CalendarSync.vbproj]

最佳答案

我们现在有问题的非最优解。
MsBuild 从以下位置之一找到错误的版本:

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0

C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 4\Packages\Microsoft.Net.Http.2.0.20710.0\lib\net40

C:\Program Files (x86)\Microsoft Web Tools\Packages\Microsoft.Net.Http.2.0.20710.0\lib\net40

这是错误的,因为这些位置的版本是:1.0.0.0。
如果我们用 2.2.28 版本替换所有这些地方,它就可以工作..
我们尝试了以下方法:
  • Compliation.config 添加程序集
  • Web.config 绑定(bind)重定向
  • Sln 文件提示正确的包..

  • 不幸的是,我们的 TC 代理处于共享环境中,因此我们无法在所有这些位置替换此文件。

    有任何想法吗?

    关于asp.net - 使用 TeamCity 构建服务器在 .NET 4.0 ASP.Net 解决方案 + google-api-dotnet-client 中构建错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27521545/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com