DLL на базе Telerik не загружается из-за проблем с усилителем(?) ⇐ C#
DLL на базе Telerik не загружается из-за проблем с усилителем(?)
Я работаю над решением C#, содержащим два проекта: клиент и сервер.
Оба обычно создаются с использованием «Любого процессора» (что, по моему мнению, означает), что они создаются как 64-битные процессы.
При создании клиента я получаю следующее сообщение об ошибке:
Указанную сборку «C:\Users\DDM\AppData\Local\Temp_ptil_15736\Client_Program.Client.dll» невозможно загрузить. Проблема может заключаться в том, что расширитель работает на виртуальной машине .NET Framework 2.0, а улучшаемая сборка — это сборка .NET 4.0, или вы пытаетесь улучшить сборку x86 в 64-разрядном процессе или сборку x64 в 32-разрядном процессе. Измените требуемую версию в файле Enhancer.exe.config или venhance.exe.config или переключитесь на «Любой процессор» для этого проекта.
Теперь немного усилий:
[*]Упомянутый каталог C:\Users\DDM\AppData\Local\Temp\_ptil_15736 даже не существует. [*]При изменении платформы сборки с «Любой процессор» на «x86» клиент иногда работает, иногда нет.
В Интернете я нашел следующий URL-адрес, объясняющий кое-что о 32-битной и 64-битной версии, а также кое-что об усилителях, какими бы они ни были.
Дополнительные усилия:
Как в серверном, так и в клиентском приложении есть ссылки на библиотеки Telerik DLL. Большинство из них имеют версию «v4. ...", но Telerik.OpenAccess и Telerik.OpenAccess.35.Extensions и Telerik.OpenAccess.Runtime имеют версию "v2.0.50727" ".
Что касается усилителей, я нахожу их здесь:
C:\\packages\Telerik.DataAccess.Fluent.2013.3.1320.1\tools\enhancer\enhancer.exe.config C:\\packages\Telerik.DataAccess.Fluent.2013.3.1320.1\tools\enhancer\venhance.exe.config C:\\packages\Telerik.DataAccess.Fluent.2016.2.822.1\tools\enhancer\enhancer.exe.config C:\\packages\Telerik.DataAccess.Fluent.2016.2.822.1\tools\enhancer\venhance.exe.config (Я понятия не имею, какие из них на самом деле используются.)
Все эти файлы «*enhance*.exe.config» имеют одинаковое содержимое:
При дальнейшем рассмотрении упомянутого URL можно увидеть следующую цитату:
Visual Studio запускает MsBuild.exe как 32-разрядный процесс
Ну, я просмотрел различные файлы «MSBuild.exe» на своем компьютере и вот что обнаружил:
C:\>каталог /S /B "msbuild.exe" C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\MSBuild.exe C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\amd64\MSBuild.exe C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSBuild.exe C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\amd64\MSBuild.exe C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\MSBuild.exe C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\amd64\MSBuild.exe C:\Program Files (x86)\MSBuild\12.0\Bin\MSBuild.exe C:\Program Files (x86)\MSBuild\12.0\Bin\amd64\MSBuild.exe C:\Temp_Folder\Default\MSBuild.exe C:\Temp_Folder\NativeImage\MSBuild.exe C:\Windows\assembly\GAC_32\MSBuild\3.5.0.0__b03f5f7f11d50a3a\MSBuild.exe C:\Windows\assembly\GAC_64\MSBuild\3.5.0.0__b03f5f7f11d50a3a\MSBuild.exe C:\Windows\Microsoft.NET\assembly\GAC_32\MSBuild\v4.0_12.0.0.0__b03f5f7f11d50a3a\MSBuild.exe C:\Windows\Microsoft.NET\assembly\GAC_32\MSBuild\v4.0_4.0.0.0__b03f5f7f11d50a3a\MSBuild.exe C:\Windows\Microsoft.NET\assembly\GAC_64\MSBuild\v4.0_12.0.0.0__b03f5f7f11d50a3a\MSBuild.exe C:\Windows\Microsoft.NET\assembly\GAC_64\MSBuild\v4.0_4.0.0.0__b03f5f7f11d50a3a\MSBuild.exe C:\Windows\Microsoft.NET\Framework\v2.0.50727\MSBuild.exe C:\Windows\Microsoft.NET\Framework\v3.5\MSBuild.exe C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe C:\Windows\Microsoft.NET\Framework64\v2.0.50727\MSBuild.exe C:\Windows\Microsoft.NET\Framework64\v3.5\MSBuild.exe C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe C:\Windows\WinSxS\amd64_msbuild_b03f5f7f11d50a3a_10.0.19041.1_none_fa6e7f402dbc0227\MSBuild.exe C:\Windows\WinSxS\amd64_msbuild_b03f5f7f11d50a3a_3.5.19041.1_none_82a6b3679b68b331\MSBuild.exe C:\Windows\WinSxS\amd64_msbuild_b03f5f7f11d50a3a_4.0.15805.0_none_dc3886319c616739\MSBuild.exe C:\Windows\WinSxS\amd64_msbuild_b03f5f7f11d50a3a_4.0.15840.3_none_dc3389e19c65e13f\MSBuild.exe C:\Windows\WinSxS\wow64_msbuild_b03f5f7f11d50a3a_4.0.15805.0_none_0606cd4b5dabfc56\MSBuild.exe C:\Windows\WinSxS\wow64_msbuild_b03f5f7f11d50a3a_4.0.15840.3_none_0601d0fb5db0765c\MSBuild.exe C:\Windows\WinSxS\x86_msbuild_b03f5f7f11d50a3a_10.0.19041.1_none_421bb61742382b2d\MSBuild.exe C:\Windows\WinSxS\x86_msbuild_b03f5f7f11d50a3a_3.5.19041.1_none_268817e3e30b41fb\MSBuild.exe Как узнать, какой из них используется, и как заменить его 64-разрядным MSBuild.exe?
Изменить:
При создании приложения я вижу следующее предупреждение. Кто-нибудь знает, что это значит?
MSBUILD: предупреждение OpenAccess Enhancer: постоянные классы не найдены. Метаданные отсутствуют?
[*]Что такое постоянные классы (в терминологии Telerik OpenAccess)? [*]Что представляют собой упомянутые метаданные, где и как их можно прочитать/записать?
Я работаю над решением C#, содержащим два проекта: клиент и сервер.
Оба обычно создаются с использованием «Любого процессора» (что, по моему мнению, означает), что они создаются как 64-битные процессы.
При создании клиента я получаю следующее сообщение об ошибке:
Указанную сборку «C:\Users\DDM\AppData\Local\Temp_ptil_15736\Client_Program.Client.dll» невозможно загрузить. Проблема может заключаться в том, что расширитель работает на виртуальной машине .NET Framework 2.0, а улучшаемая сборка — это сборка .NET 4.0, или вы пытаетесь улучшить сборку x86 в 64-разрядном процессе или сборку x64 в 32-разрядном процессе. Измените требуемую версию в файле Enhancer.exe.config или venhance.exe.config или переключитесь на «Любой процессор» для этого проекта.
Теперь немного усилий:
[*]Упомянутый каталог C:\Users\DDM\AppData\Local\Temp\_ptil_15736 даже не существует. [*]При изменении платформы сборки с «Любой процессор» на «x86» клиент иногда работает, иногда нет.
В Интернете я нашел следующий URL-адрес, объясняющий кое-что о 32-битной и 64-битной версии, а также кое-что об усилителях, какими бы они ни были.
Дополнительные усилия:
Как в серверном, так и в клиентском приложении есть ссылки на библиотеки Telerik DLL. Большинство из них имеют версию «v4. ...", но Telerik.OpenAccess и Telerik.OpenAccess.35.Extensions и Telerik.OpenAccess.Runtime имеют версию "v2.0.50727" ".
Что касается усилителей, я нахожу их здесь:
C:\\packages\Telerik.DataAccess.Fluent.2013.3.1320.1\tools\enhancer\enhancer.exe.config C:\\packages\Telerik.DataAccess.Fluent.2013.3.1320.1\tools\enhancer\venhance.exe.config C:\\packages\Telerik.DataAccess.Fluent.2016.2.822.1\tools\enhancer\enhancer.exe.config C:\\packages\Telerik.DataAccess.Fluent.2016.2.822.1\tools\enhancer\venhance.exe.config (Я понятия не имею, какие из них на самом деле используются.)
Все эти файлы «*enhance*.exe.config» имеют одинаковое содержимое:
При дальнейшем рассмотрении упомянутого URL можно увидеть следующую цитату:
Visual Studio запускает MsBuild.exe как 32-разрядный процесс
Ну, я просмотрел различные файлы «MSBuild.exe» на своем компьютере и вот что обнаружил:
C:\>каталог /S /B "msbuild.exe" C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\MSBuild.exe C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\amd64\MSBuild.exe C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\MSBuild.exe C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\amd64\MSBuild.exe C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\MSBuild.exe C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\amd64\MSBuild.exe C:\Program Files (x86)\MSBuild\12.0\Bin\MSBuild.exe C:\Program Files (x86)\MSBuild\12.0\Bin\amd64\MSBuild.exe C:\Temp_Folder\Default\MSBuild.exe C:\Temp_Folder\NativeImage\MSBuild.exe C:\Windows\assembly\GAC_32\MSBuild\3.5.0.0__b03f5f7f11d50a3a\MSBuild.exe C:\Windows\assembly\GAC_64\MSBuild\3.5.0.0__b03f5f7f11d50a3a\MSBuild.exe C:\Windows\Microsoft.NET\assembly\GAC_32\MSBuild\v4.0_12.0.0.0__b03f5f7f11d50a3a\MSBuild.exe C:\Windows\Microsoft.NET\assembly\GAC_32\MSBuild\v4.0_4.0.0.0__b03f5f7f11d50a3a\MSBuild.exe C:\Windows\Microsoft.NET\assembly\GAC_64\MSBuild\v4.0_12.0.0.0__b03f5f7f11d50a3a\MSBuild.exe C:\Windows\Microsoft.NET\assembly\GAC_64\MSBuild\v4.0_4.0.0.0__b03f5f7f11d50a3a\MSBuild.exe C:\Windows\Microsoft.NET\Framework\v2.0.50727\MSBuild.exe C:\Windows\Microsoft.NET\Framework\v3.5\MSBuild.exe C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe C:\Windows\Microsoft.NET\Framework64\v2.0.50727\MSBuild.exe C:\Windows\Microsoft.NET\Framework64\v3.5\MSBuild.exe C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe C:\Windows\WinSxS\amd64_msbuild_b03f5f7f11d50a3a_10.0.19041.1_none_fa6e7f402dbc0227\MSBuild.exe C:\Windows\WinSxS\amd64_msbuild_b03f5f7f11d50a3a_3.5.19041.1_none_82a6b3679b68b331\MSBuild.exe C:\Windows\WinSxS\amd64_msbuild_b03f5f7f11d50a3a_4.0.15805.0_none_dc3886319c616739\MSBuild.exe C:\Windows\WinSxS\amd64_msbuild_b03f5f7f11d50a3a_4.0.15840.3_none_dc3389e19c65e13f\MSBuild.exe C:\Windows\WinSxS\wow64_msbuild_b03f5f7f11d50a3a_4.0.15805.0_none_0606cd4b5dabfc56\MSBuild.exe C:\Windows\WinSxS\wow64_msbuild_b03f5f7f11d50a3a_4.0.15840.3_none_0601d0fb5db0765c\MSBuild.exe C:\Windows\WinSxS\x86_msbuild_b03f5f7f11d50a3a_10.0.19041.1_none_421bb61742382b2d\MSBuild.exe C:\Windows\WinSxS\x86_msbuild_b03f5f7f11d50a3a_3.5.19041.1_none_268817e3e30b41fb\MSBuild.exe Как узнать, какой из них используется, и как заменить его 64-разрядным MSBuild.exe?
Изменить:
При создании приложения я вижу следующее предупреждение. Кто-нибудь знает, что это значит?
MSBUILD: предупреждение OpenAccess Enhancer: постоянные классы не найдены. Метаданные отсутствуют?
[*]Что такое постоянные классы (в терминологии Telerik OpenAccess)? [*]Что представляют собой упомянутые метаданные, где и как их можно прочитать/записать?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение