Windows 10でVS2017を使用してC#プロジェクトを処理しています。これは、管理者権限を必要とするだけで、HTAを実行する、本当に小さなコンソールアプリケーションです。唯一基本的な要件の場合のみ.NETバージョンで動作する.NETアプリケーションを作成する
コードリファレンスこれらの.NETアセンブリ:
using System;
using System.Diagnostics;
using System.IO;
これらのすべては2.0と前方以来、.NETに存在しているので、除いて何も指定しなくてもアプリを作成することが可能である必要がありそうです。 NET 2.0。しかし、これを実行すると、.NET 4.0以降のシステムで実行すると、 "must install .NET 2.0 or 3.5"というメッセージが表示されます。
.NET版を指定しないようにこのアプリケーションを作成する方法はありますか?私は<TargetFrameworkVersion>
を.csprojファイルから削除しようとしましたが、.NET 4.0アプリケーションだと思ってビルドします。
UPDATE
提案の答えと、このarticleに基づいて、私はそれをv2とv4の両方をサポートして表示するようにApp.configファイルを更新:
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v2.0.50727"/>
<supportedRuntime version="v4.0"/>
</startup>
私は、NETに設定された目標で構築Framework 4.6.1をインストールし、.NET Framework 2.0/3.5のみがインストールされたWin7Pro-64bitシステムで実行しました。 「.NET Frameworkの次のバージョンのいずれかを最初にインストールする必要があります」というメッセージが表示され、v4.0.30319のみが表示されます。
ターゲットをNET Framework 2.0に設定してビルドし、.NET Framework 4.0のみをインストールしたWin10Pro-64bitシステムで実行しました。それは私が "NET Framework 3.5"にしなければならなかったメッセージを表示するか、または私のアプリが正しく動作しないことがあります。私は "これをスキップする"オプションを試してみると、アプリケーションが動作しませんでした。
ターゲットに応じてシステム上で実行すると、アプリは正常に動作します。
の両方がのように指定されているため、使用可能なフレームワークを使用しないのはなぜですか?
プロジェクトのプロパティから[ビルド]タブのドロップダウンで "ターゲットフレームワーク"バージョンを変更しましたか? .NET 2.0プロジェクトとして構築し、2.0以上の任意のコンピュータにインストールすることができます。 –
nope。あなたはclrのバージョンに縛られなければなりません。ネイティブアセンブリを生成することもできます。 –
かなり主観的ですが、ほとんどの開発者に.NET 4.xを使用させ、.NET 2.x/3.xにさよならを言わせることによって、実際には醜い経験が実際に可能であると思います。そのような苦労がなければ、多くの人々はそれらのレガシープラットフォームに固執し、アップグレードを拒否します。ここでも.NETコアはさらに大きな変化をもたらします。 –