タイトルでごめんなさい...これは簡単に「今週の最も奇妙なもの」に勝つでしょう。少なくとも誰かがここで何が起こっているのかを調査する方法についてのヒントを教えてくれることを願っています...
Outlookを使用してアドインを実行すると、すべてが想定どおりに機能し、フリーズアップしません。
ただし、デバッグモードでVS10から同じことを実行しようとすると、スプラッシュ画面が表示され、そこでスタックします。まず、アドインをロードしているフラッシュ画面が表示されます。その後、消えてしばらくすると再び表示され、アニメーションを続け(Office 2010のスプラッシュ画面の色の波)、「処理中」のテキストの横にドットが点滅します。
キャンセルしてスプラッシュ画面(Outlookが表示されずにシャットダウンする)を閉じることができるので、アプリケーションがフリーズしないようです。また、Outlookを起動して実行すると、すべてが完全に機能することを思い出してください。
今、奇妙な部分であり、それは本当に奇妙なので、あなたの帽子を握ってください。
この動作は、次の両方を実行した場合にのみ表示されます。
- 連絡先用の新しいフォルダを追加します(以下のコード#1を参照)。
- Outlookにウェルカムメッセージを表示する(以下のコード#2を参照)。
コード#1はコード#2の前に実行されます。(1)をスキップすると、ハングアップがなくなります。(2)をスキップすると、それも消えます。問題を引き起こすのはこれら2つの組み合わせです(デバッグモードの場合のみ)。アヒル(タイプミスではなく、鳥が意図されている)がなぜこれが起こるのかについて説明したいと思います。
コード#1:
Outlook.Folder contacts = this.Application.Session.GetDefaultFolder(
Outlook.OlDefaultFolders.olFolderContacts) as Outlook.Folder;
Outlook.Folder addressBook = contacts.Folders.Add(
"My AB", Outlook.OlDefaultFolders.olFolderContacts) as Outlook.Folder;
コード#2
MessageBox.Show("Coolest add-in ever! Gimme $$$!");