Ответ был несколько раздражающим, но это сработало.
К моему огромному отвращению я обнаружил, что состояние моего потока непосредственно внутри моей функции Main было MTA, несмотря на мое использование атрибута STAThread
. Очевидно, поток отладки, который вызвал мою точку входа, решил переопределить атрибут и сделать его потоком MTA. Решение состояло в том, чтобы затем создать другой поток и запустить мое приложение из этого. Я сделал это, и это сработало. Я ненавижу это, но, похоже, ни у кого больше нет этой проблемы.
Это может быть забавный способ настроить мой проект. То есть для запуска из приложения MFC (не может помочь) с таргетингом на .Net 3.5, даже если это в Visual Studio 2010.
В любом случае, это работает.