gpt4 book ai didi

.net - TFS 2010 为 .Net 3.5 应用程序创建 .Net 4.0 XmlSerializers DLL

转载 作者:行者123 更新时间:2023-12-04 20:23:30 24 4
gpt4 key购买 nike

我们有一个在 Visual Studio 2010 中运行的 ASP.Net Web 应用程序,它针对 .Net 3.5。它由 TFS 2010 构建。这个 Web 应用程序有几个 Web 引用,因此构建创建了一个相关的 XmlSerializers DLL。但是,此 DLL 是 .Net 4.0 程序集。

当我从构建中运行此 Web 应用程序时,出现错误:

Could not load file or assembly 'BLAH_BLAH_WEB_APPLICATION_NAME.XmlSerializers' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.



我们正在使用在 TFS 2008 下工作的 msbuild .proj 文件(使用构建定义中的“升级模板”)。我看到了 this questionthis one ,但那些提到使用特定的 SGen 构建步骤。我们不是。此外,提议的解决方案涉及对 7.0A SGen 的路径进行硬编码,这只是……丑陋。

有没有办法强制 TFS 2010 构建将此 XmlSerializers DLL 编译为 .Net 3.5 程序集?

最佳答案

根本问题是注册表中的值无效。 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0 下的 SDK35ToolsPath 值为:

$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.0A\WinSDK-NetFx35Tools-x86@InstallationFolder)



但是,构建服务器具有 Windows SDK 7.1 版。因此,我将值更正为:

$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.1\WinSDKNetFx35Tools@InstallationFolder)



然后 XmlSerializers DLL 现在使用 .Net 2.0。

关于.net - TFS 2010 为 .Net 3.5 应用程序创建 .Net 4.0 XmlSerializers DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3636103/

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