Visual Studio 2010: как заставить ASP.NET веб-сайт использовать x86 вместо «любого процессора»?

#asp.net #visual-studio-2010 #.net-3.5 #sharepoint-2010

#asp.net #visual-studio-2010 #.net-3.5 #sharepoint-2010

Вопрос:

При использовании библиотек DLL SharePoint (которые только для x86) из non-ASP.NET приложение, вы можете установить для «целевой платформы» значение x86 (вместо «Любого процессора»), чтобы и Visual Studio 2010, и приложение нормально загружали сборки SharePoint.

Однако при разработке ASP.NET приложения в системе разработки x64, вы получаете это страшное сообщение об ошибке при создании веб-сайта:

Не удалось загрузить файл или сборку ‘Microsoft.SharePoint.Поиск’ или одна из его зависимостей. Была предпринята попытка загрузить программу с неправильным форматом.

Это потому, что ASP.NET по умолчанию используется «Любой процессор» при сборке в Visual Studio 2010.

Как я могу это изменить?

Я попробовал страницы свойств для веб-сайта, web.config, но безрезультатно.

Примечание: это для системы разработки. Я знаю, что для серверной системы я могу изменить пул приложений, чтобы принудительно загружать 32-разрядную версию x86, установив для «Включить 32-разрядные приложения» значение «True» в «Пуле приложений по умолчанию».

Комментарии:

1. На самом деле SharePoint 2010 (который является одним из ваших тегов) доступен только для x64. В SharePoint 2007 были как x86, так и x64 версии, хотя я думаю, что x86 была гораздо более распространенной.

2. Хм, вы правы. Происходит что-то подозрительное, поскольку мне пришлось пометить пул приложений для моего ASP.NET приложение должно быть только 32-разрядным, иначе оно вообще не загружалось бы. Я вернусь к этому, но это может быть пятница.

Ответ №1:

Вы можете установить пользовательский параметр компилятора в web.config на <compilers>

 compilerOptions="/platform:string"
  

где строка может быть найдена здесь:
http://msdn.microsoft.com/en-us/library/zekwfyz4 (VS.80).aspx

Комментарии:

1. Я последовал msdn.microsoft.com/en-us/library/y9x69bzw.aspx и msdn.microsoft.com/en-us/library/zekwfyz4 (v = VS.100).aspx но я все еще получаю ту же ошибку. compiler Часть теперь такая: <compiler compilerOptions="/platform:x86" language="c#;cs;csharp" extension=".cs" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" warningLevel="4">

2. @Jeroen параметры компиляции работают, например, попробуйте установить /D: MYDEBUG или определить что-то другое и его работу. И я думаю, что если нет четкой опции для определения x86, опция компилятора является последней. Теперь, если не работает, что я могу сказать ….?

3. После переустановки компьютера теперь это работает 🙂 Я одобрил ваш ответ, потому что он в основном рассказывает вам, как это сделать.