1

私は c# で Windows アプリケーションを作成しています。.NET Framework 3.5 で 1 つのアプリケーションを作成し、Windows Vista を使用しています。そのアプリケーションのビルドを作成していて、Windows 7 を搭載した他のマシンで実行しようとすると、動作しません。対象のマシンは、コントロール パネルに .NET Framework 4.0 クライアント プロファイルを表示します。この問題は、CONFIG ファイルから何らかの値を読み取ろうとするたびに発生します。構成ファイルを使用しない場合、アプリケーションは実行されますが、構成ファイルを使用する必要があります。フレームワークの問題を確認するために、ボタンのクリック時に構成ファイルの値を読み取ろうとする単純なアプリケーションを1つ作成しました MessageBox.Show(ConfigurationManager.AppSettings["FlagForArchiving"].ToString()); が、エラーが発生しています

See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.NullReferenceException: Object reference not set to an instance of an object.
   at TestFramework.Form1.button1_Click(Object sender, EventArgs e)
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.239 (RTMGDR.030319-2300)
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
TestFramework
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/Users/mvi/AppData/Local/Temp/Temp1_test.zip/Release/TestFramework.exe
----------------------------------------
System.Windows.Forms
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.235 built by: RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.1 built by: RTMRel
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.236 built by: RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Configuration
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.1 (RTMRel.030319-0100)
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
    Assembly Version: 4.0.0.0
    Win32 Version: 4.0.30319.233 built by: RTMGDR
    CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.

私の問題を解決するのを手伝ってください。よろしくお願いします。

4

3 に答える 3

2

FileNotFoundException構成ファイルがアプリフォルダーに存在しないことを意味します。アプリケーションを公開するときに、構成ファイルがデプロイされていることを確認してください。

はい、アプリがインストールされている各マシンに構成ファイルが必要です。

于 2011-11-21T07:45:07.320 に答える
0

おそらくディレクトリアクセスが原因です。アクセスを保証するために、管理者経由でアプリケーションを実行してください。

于 2011-11-21T07:24:29.503 に答える
0

プロファイルを「.NET Framework 3.5」に変更します。「.NET Framework 3.5 クライアント プロファイル」にはいくつかの制限があり、必要なすべてのアセンブリが提供されるわけではありません。

于 2011-11-21T07:25:03.277 に答える