gpt4 book ai didi

在 Web 部署项目期间,ASP.NET 编译器失败并出现 XmlSerializers 错误

转载 作者:行者123 更新时间:2023-12-02 16:32:12 31 4
gpt4 key购买 nike

我们在构建过程中使用 Visual Studio 2010 Web 部署项目来编译 Web 应用程序网站。我们的构建代理上未安装 Visual Studio 2010。在构建过程中,我们收到一个错误(见下文),该错误与自动生成的 Foo.XmlSerializers.dll 相关,该错误是使用比当前加载的运行时更新的运行时构建的,并且无法由 aspnet_compiler.exe 加载。

我们的项目文件以 .NET Framework v3.5 为目标。

这是错误(针对长行重新格式化):

"C:\BuildAgent\work\3836706d661b8a05\project\src\Foo.FrontEnd.WdpSite\
Foo.FrontEnd.WdpSite.wdproj" (Build target) (1) ->
(AspNetCompiler target) ->
ASPNETCOMPILER : error ASPCONFIG: Could not load file or assembly
'Foo.FrontEnd.Site.XmlSerializers' or one of its dependencies.
This assembly is built by a runtime newer than the currently loaded
runtime and cannot be loaded.
[C:\BuildAgent\work\3836706d661b8a05\project\src\Foo.FrontEnd.WdpSite\
Foo.FrontEnd.WdpSite.wdproj]

最佳答案

我遇到了类似的问题,具有相同的错误消息,经过多次挫折后找到了解决方案(希望能够为此提供一些想法)。

这里我们有一个带有 Windows SDK 7.1(以及使用 Vs 2008 时的 6.1)的构建服务器,用于构建面向 .NET 3.5 的 VS 2010 项目。然后使用 aspnet_compiler 预编译 Web 项目(从 v2 开始,按照 http://msdn.microsoft.com/en-us/library/ms229863.aspx#findingthecorrectversion )。在预编译过程中,我收到了与您相同的错误消息,涉及一个项目(不是 Web,只是普通库),其中包含对 Web 服务的 Web 引用。看起来 Windows SDK 7.1 没有正确设置使用 .NET 3.5 工具的注册表路径(而 Visual Studio 则可以)。这导致 Web 引用使用 .NET 4 的目标运行时进行编译(使用反射器进行验证),因此 aspnet_compiler v2 适合。我比较了构建服务器和本地 Visual Studio 安装的注册表设置,结果显示 SDK 7.1 的 .NET 3.5 配置不好,因此我使用以下内容更正了构建服务器。我的猜测是,Web 引用 xml(在非 Web 项目中)正在使用 .NET 4 的 sgen 进行预编译,作为未使用正确的 .NET 3.5 sgen 的后备措施。应用注册表更改后,一切都很好(我的构建服务器注册表中不存在以下内容,因此我创建了它)。

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v7.1\WinSDK-NetFx35Tools-x86]
"ComponentName"="Windows SDK .NET Framework 3.5 Multi-targeting Utilities"
"InstallationFolder"="C:\\Program Files\\Microsoft SDKs\\Windows\\v7.1\\bin\\"
"ProductVersion"="7.1.7600.0.30514"

作为补充说明,我还使用 WindowsSdkVer 将 7.1 设置为默认 SDK。

关于在 Web 部署项目期间,ASP.NET 编译器失败并出现 XmlSerializers 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5471071/

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