9

我有一个 Web 表单网站项目。该网站引用了 4 个类库项目。其中 3 个类库引用了第三方程序集。对于 3 个类库项目中的每一个,我都收到以下编译器错误。

ASPNETCOMPILER:错误 ASPCONFIG:无法加载文件或程序集“myAssembly”或其依赖项之一。试图加载格式不正确的程序。[项目。元项目]

我已经在类库项目中尝试了 AnyCPU/x86/x64 的所有可能组合。我无法在网站项目上更改它。我有第三方 dll 的 x86 和 x64 版本。两个都试过了。

“ClassLibrary.csproj”(默认目标)(4)->(ResolveAssemblyReferences 目标)-> C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1561,5):警告 MSB3270:那里正在构建的项目“MSIL”的处理器架构与参考“ThirdPartyDll,Version=xxx,Culture=neutral,processorArchitectu re=x86”,“x86”的处理器架构不匹配。这种不匹配可能会导致运行时失败。请考虑通过配置管理器更改项目的目标处理器架构,以便在项目和参考之间调整处理器架构,或者依赖与您项目的目标处理器架构相匹配的处理器架构的参考。[ClassLibrary.cspro j]

下图说明了解决方案配置。注意我不能从这里的“AnyCPU”改变,只能从每个单独的类库项目中改变。

解决方案配置

所有 .NET 4

将网站转换为 Web 应用程序不是一种选择。

谢谢,

4

2 回答 2

6

显然,您有一个本机 32 位 DLL。因此,必须将 IIS 上的应用程序池配置为以 32 位模式运行 .NET 框架。

这可以在 IIS 管理器中进行配置。转到“应用程序池”,选择相关的应用程序池并打开“高级设置...”对话框。32 位选项接近顶部。

于 2012-07-27T16:07:26.027 回答
0

您引用的程序集之一仅适用于 x86,因此引用它的项目链必须仅针对 x86 构建。还要确保在部署应用程序池时配置为 32 位。

于 2012-07-27T15:28:12.830 回答