.NET 3.0を対象とするアプリが、.NET 2.0および4.0を搭載しているが、3.0を搭載していないユーザーのマシンで動作するかどうかについて誰かがアドバイスできますか?この特定のマシンでは、3.0および3.5のインストーラーがクラッシュします。
3 に答える
/編集
私は興味があり、すぐに自分自身を試しました。実際には、アプリを3.0 / 3.5に対してビルドし、最終的に3.0 / 3.5固有のもの(Linqなど)を実際に使用するかどうかによって異なります。使用しない場合でも、もちろん機能します。
ただし、そうすると、ユーザーにはMicrosoftエラー報告ダイアログが表示されます。
ターゲットの依存関係(プロジェクト参照)に依存するため、「直接ターゲットの.NET 3.0/3.5はない」ようです。
しかし、最終的には、答えは「いいえ、あなたは決して知らないので!」であるはずです。
.Net4にはプログラムに必要なすべてのものが含まれている可能性が非常に高いため、アセンブリの使用をリダイレクトするオプションがあります(少し面倒ですがあります)。通常、開発中のApp.configという名前のアプリケーションの構成ファイルとApplicationNameを変更できます。展開時の.exe.config。
セクション構成で、リダイレクトする必要があるすべてのアセンブリに対してこれを試してください。
<runtime>
<generatePublisherEvidence enabled="false"/>
<gcServer enabled="true"/>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System" publicKeyToken="b77a5c561934e089" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="4.0.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
4.0フレームワークは、以前のバージョン(1.1以降)用にコンパイルされたアセンブリと名目上下位互換性があります。CLRを変更すると、アプリケーションが破損する可能性があります。詳細については、 http://msdn.microsoft.com/en-us/library/ff602939.aspxを参照してください。
話の教訓:4.0 CLRで3.5アプリケーションをテストして、正しく動作することを確認します。