У меня есть библиотека, которая построена для x86. При составлении проектов .NET в «любом процессоре», который ссылается на сборку, я получаю следующее предупреждение компилятора:Проблемы с архитектурой процессора (x86 vs any cpu)
"There was a mismatch between the processor architecture of the project being built "MSIL" and
the processor architecture of the reference "xxx", processorArchitecture=MSIL", "x86". This
mismatch may cause runtime failures. Please consider changing the targeted processor
achitecture of your project through the Configuration Manager..."
У меня есть два проекта. Проекты A и B. Оба проекта .net C# visual studio (2013). Проект A - это сервис Windows, проект B - это простое приложение для форм Windows. Они используют общую библиотеку (также любой процессор), которые снова (иногда) используют библиотеку x86.
Project A (Windows Service, AnyCPU) -> CommonLibrary (AnyCPU) -> UtilityLibrary (x86)
Проект B (WinForms, AnyCPU) -> CommonLibrary (AnyCPU) -> UtilityLibrary (x86)
В Project A я получаю ошибку времени выполнения при использовании UtilityLibrary. Но не из проекта B. Ошибка выполнения в проекте A разрешена после того, как UtilityLibrary встроена в «Any Cpu», или Project A построен на x86, поэтому я знаю, что это связано с этим.
Мой вопрос: В каких случаях возникают ошибки времени использования библиотек, специфичных для архитектуры?
UtilityLibrary является частью недавно выпущенной версии программного обеспечения, а CommonLibrary - это API, также являющийся частью выпуска программного обеспечения. Я пытаюсь определить последствия этого. В будущих выпусках UtilityLibrary будет построен для AnyCpu, так как нет никаких оснований для этого быть X86.
Спасибо. Это прояснилось для меня. Приложение winforms, работающее с утилитой, фактически было установлено на x86. Когда он установлен на любой CPU, он также не удался. –