8

この質問は、おそらく複数回前に聞かれてきましたが、私にとってうまくいく典型的な解決策が得られません。 proposed solutionは「app.configを」ファイルでこれを置くことです:.NET 4のみのシステムで.NET 3.5アプリケーションを実行する

<configuration> 
    <startup> 
     <supportedRuntime version="v4.0"/> 
    </startup> 
</configuration> 

しかし、単純な「Hello World」のプログラムで、私はまだエラーを取得:「これを実行するためのランタイムのバージョンを見つけることができません。応用。"。

いくつかの背景のために、私はWindows XP(Windows 7ではWindows Virtual PCから)を使用しており、XPに.NET 4.0ランタイムのみをインストールしました。

は、いくつかの研究の後、私は、このページを発見: http://msdn.microsoft.com/en-us/library/ee941656.aspx#core

、アプリケーションの設定ファイルは、アプリケーション・name.config命名されている場合は、アプリケーション・name.exe.configに名前を変更し、」言及例えば、名前を変更します。 MyApp.configをMyApp.exe.configに設定してください。 "

問題を解決できると思っていましたが、「このアプリケーションを実行するためのランタイムバージョンを見つけることができません」と表示されます。 .NET 4.0でWinXP上で.NET 3.5(クライアントプロファイルまたは完全)アプリケーションを実行しようとすると、

+1

これは正常に動作することが知られています。あなたは実際に "MyApp.exe.config"に名前を変更していませんでしたか? MyAppをプログラムの名前に置き換えます。 –

+0

いいえ、 "app.config"という名前は既に "app.config"という名前だったので、 "app.config"から "app.exe.config"に変更しました。私のプログラムの名前は実際には "testOnNet40only"です。下のNathanは、ユーザーがCLR 2.0-3.5を必要としていることを暗示しているようですが、何かが動作するかどうかはわかりません。 –

+1

それは私が言っているようだ。 "app.exe.config"はうまくいきません。 "testOnNet40Only.exe.config"という名前を付ける必要があります。また、ホスティングプロセスを有効にしてデバッガを使用する場合は、「testOnNet40Only.vshost.exe.config」という名前を付ける必要があります。 –

答えて

6

私はそれをクラックしました。これはうっすらと聞こえるかもしれませんが、configファイルは、ユーザのフォルダ内の最終実行ファイルである必要があります。すべての私の研究の後、これはどこにも明らかにされていないようです。私はそれが開発者のフォルダにあることをコンパイル目的のためにのみ使用されていたと思っていた。

VSエディタのファイルリストでは、 "app.config"のままにすることができます。しかし、コンパイルすると、VSは自動的に "{ProgramName} .exe.config"を自動的に作成します(bin/releaseフォルダに入れます)。これは、実行可能ファイルと共にエンドユーザーのフォルダに移動する必要があるファイルです。

要約すると、はい、.NET 4.0しかインストールされていないシステムで.NET 3.5アプリケーションを実行することは可能です。

関連する問題