Как исправить ошибки VS2008 и VS2010 на Win7 x64 - PullRequest
2 голосов
/ 14 октября 2010

Хорошо, сейчас я в мире боли.

Мы разрабатывали с VS2008 (VB.NET, в основном WinForms, также ASP.NET и службы Windows) на Win7 x64, с особыми требованиями (от которых мы пока не можем избавиться), для таргетинга на x86 и framework 3.5.

Мы недавно обновились до VS2010, и довольно скоро это произошло из-за этой проблемы несовместимости ResGen.exe . По сути, мы не можем скомпилировать приложение WinForms с VS2010. Ни один из обходных путей, предложенных Microsoft или другими, не сработал ни для меня, ни для другого члена моей команды.

Таким образом, мы попытались вернуться к VS2008, используя методику, описанную здесь (т.е. взломать файл решения), а также создав новое решение VS2008 и добавив в него проекты. Некоторое время это казалось нормальным, но теперь мы обнаруживаем, что при отладке приложения необработанные исключения не попадают в IDE, что делает разработку практически невозможной.

Совершенно новое тестовое приложение, созданное с VS2008 (скомпилированное для x86 и .NET 3.5), не демонстрирует эту ошибку при обнаружении исключений.

Пока что мне пришлось прибегнуть к разработке на VS2010 на 32-битной виртуальной машине Win7 внутри основного компьютера, и она работает ... но она медленная!

Любые идеи для выхода из этого были бы с благодарностью !!

Обновление

Хорошо, это не настоящее решение, но как обходной путь, это не полная катастрофа ...

Спасибо Ною за его комментарий, который побудил меня изучить различные решения виртуализации вокруг. Я теперь обнаружил (вероятно, последний человек здесь!) VirtualBox . Он не только немного более приятен в использовании, чем VMWare Player и различные воплощения виртуального ПК Microsoft / Windows, но и имеет Бесшовный режим , где приложения, работающие на ВМ, отображаются как отдельные окна в хосте. Итак, теперь у меня есть гостевая система x86 под управлением VS2010, компилируемая для x86 и Framework 3.5. Поскольку в гостевой системе нет конфликта x64 / x86, проблема Resgen.exe отсутствует, и мой dev envt просто отображается в виде окна на рабочем столе моего хоста. Это все еще медленнее, чем было бы изначально, но сейчас я могу жить с этим.

Все равно оценит любые реальные решения (или, если это не удастся, исправление от Microsoft !!)

Ответы [ 2 ]

0 голосов
/ 08 февраля 2011

Вы можете просто сделать Make ResGen.exe 32-битным путем: 1. Cd «% ProgramFiles (x86)% \ Microsoft SDKs \ Windows \ v7.0A \ Bin» 2. Corflags / 32Bit + / Force ResGen.exe

Сохраните предыдущий файл resgen.exe перед этим изменением.

После этого изменения вам нужно будет изменить все ваши проекты, чтобы Resgen работал в режиме 32-битного управления

  1. Добавление Managed32Bit к PropertyGroup в файле проекта любого проекта, который генерирует ресурсы для .NET 3.5 - поскольку уловка corflags влияет на разрядность ResGen.exe на общесистемном уровне, свойство должно быть установлено для всех затронутых проектов какхорошо.

  2. ИЛИ Если запустить MSBuild.exe напрямую, передав его с помощью глобального переключателя свойств: '/ p: ResGenToolArchitecture = Managed32Bit'

Решение размещено по адресу http://tune -up-pc.com / blog /? P = 10790

0 голосов
/ 05 декабря 2010

Ну, я сдался.

VirtualBox некоторое время был в порядке, но медленная работа виртуальной машины была раздражающей, и вечная необходимость управлять перемещением между хостом и гостем сводила меня с ума.

Итак, я перестроил всю машину с Windows 7 x86.

Полностью противен очевидному безразличию Microsoft к этой проблеме, но, думаю, я не первый, кто это чувствует.

...