2

Microsoft Visual C#2008ExpressEditionを使用しています。(そして、申し訳ありませんが、これは厳密なプログラミングの質問というよりも、MS Vis C#のユーザビリティの質問です...)

私は小さなプログラムを書きました。デバッガーを使用してMSVC#で実行すると、すべて問題ありません。「1回クリック」を使用して展開するものを生成し(「Webサイトから」ではなく「CD-ROMから」オプションを使用している)、それを自分のマシン(または別のマシン)にインストールする場合コードの一部が実行されないことを除いて、すべてが順調です。

実行されていないコードは、try/catchループの「catch」部分です。このキャッチをテストできるように、アプリケーションでまだ例外が生成されることがわかっているバグを意図的に持っています。キャッチはGUIを起動し、ユーザーにデータを返送するように要求します。デバッガーでは、これは正常に機能します。スタンドアロンの公開されたアプリでは、これは機能しません。

何か案は?

友人から、展開の「問題」がある可能性があり、Express Editionの展開オプションは限られており、おそらくStandard Editionが必要であると思われるため、「ExpressEdition」を実行していることを指摘します。 。(「1回クリック」の発行方法の代わりにWindowsインストーラーを使用できるため)。

これは意味がありますか?

助けに感謝します!

-Adeena(このMicrosoftの「ビジュアル」の世界を理解するのに苦労している古いコマンドラインUNIX C ++プログラマー)

4

1 に答える 1

3

このコードは、万が一、フォームのコンストラクター/ OnLoadに含まれていますか?デバッガーを使用する場合と使用しない場合では、この領域に既知の違いがあります。修正は通常、UIスレッドがイベントを処理するまでコードを延期することです。例えば:

    protected override void OnLoad(EventArgs e)
    {
        base.OnLoad(e);
        BeginInvoke((Action)LoadStuff);
    }
    void LoadStuff()
    {
        // todo...
    }
于 2008-12-16T19:36:32.840 に答える