問題タブ [target-framework]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
968 参照

.net - NuGet パッケージの targetFramework をスムーズにアップグレードする方法

現在、.NET 4.5 を対象とする NuGet パッケージがあります。次のバージョンは、代わりに .NET 4.5.2 をターゲットにします。私は両方のフレームワーク バージョンをサポートすることに関心はありません (これらのパッケージは内部でのみ使用されます)。現在、NuGet は 4.5 プロジェクトが私のパッケージをインストールできるように見えますが、(net45 用にインストールする DLL がないため) no-op になります。

私の質問は、このエクスペリエンスを改善するにはどうすればよいですか? 理想的には、targetFramework が間違っている場合にインストールを失敗させたいと考えています。それがなければ、エラー メッセージのようなもので解決します。

0 投票する
1 に答える
680 参照

.net - すべての中間ターゲット フレームワーク バージョンを NuGet パッケージで指定する必要がありますか?

強制パッケージ規則に関するNuGet ドキュメントでは、次のように説明されています。

NuGet は、単一のライブラリ フォルダーからのみアセンブリをコピーします。たとえば、パッケージに次のフォルダー構造があるとします。

.NET Framework 4 を対象とするプロジェクトにパッケージをインストールすると、インストールされるアセンブリは MyAssembly.dll (v2.0) だけになります。MyAssembly.Core.dll (v1.0) がインストールされていません。(NuGet がこのように動作する理由の 1 つは、MyAssembly.Core が MyAssembly のバージョン 2.0 にマージされた可能性があるためです)。

この例では、MyAssembly.Core.dll を .NET Framework 4 を対象とするプロジェクトにインストールする場合、それを Net20 フォルダーだけでなく Net40 フォルダーにも含める必要があります。

1 つのフォルダーからのみアセンブリをコピーするという規則は、ルート lib フォルダーにも適用されます。パッケージに次のフォルダー構造があるとします。

.NET Framework 2.0 と .NET Framework 3.5 を対象とするプロジェクトでは、NuGet は MyAssembly.dll と MyAssembly.Core.dll の両方をコピーします。ただし、前の例と同様に、.NET Framework 4 を対象とするプロジェクトでは、*Net40 フォルダーの *MyAssembly.dll のみがコピーされます。

そのため、2 番目の例では、パッケージを .NET 3.5 プロジェクトにロードするときに何が起こるかについて説明します。

残念ながら、最初の例ではこの情報が欠落しています。最初の例で示した NuGet パッケージから .NET 3.5 プロジェクトが取得するファイルは何ですか? .NET 3.5 プロジェクトは単純にファイルを取得しないのでしょうか、それともターゲット プロジェクトで後方互換性によってサポートされている最高のフレームワーク バージョンを対象とするライブラリを取得するのでしょうか (.NET 3.5 プロジェクトの場合、これはライブラリの .NET 2.0 バージョンを意味します)。

私がこの質問に興味を持った理由には、2 つの具体的な意味があります。.NET 2.0 バージョン (2.0 から 4.6 までのすべての .NET Framework バージョンで使用する必要があります) をコンパイルしたアセンブリを提供しているとします。 NET 4.6.1 バージョン (.NET 4.6.1 以降で使用されることを意図した、.NET 4.6.1 で導入されたいくつかの新しい BCL API を使用)。

1)ファイルで2つの「キー」バージョンを宣言するだけでいいですか.nuspec

または、サポートされているすべての中間バージョンをリストする必要がありますか?

? 1

2) 同様に、このパッケージを公開したら、フレームワークの将来のバージョンで動作するか、.NET 4.6.2、4.6.3、4.7、または一般的には、パッケージを更新する必要がありますか? .NET 4.6.1 よりも大きいものはありますか?

1つだけ質問していることに注意してください。その重要性を説明するために、3 つの異なる方法で書き留めただけです。

1 : この列挙は、執筆時点でサポートされているターゲット フレームワークのリストに基づいています。さらに、.NET 1.1 (およびその他のフレームワーク) をサポートしたくないことに注意してください。したがって、lib上記のドキュメントの 2 番目の例に示されているように、フォルダーにライブラリを直接追加したくありません。

0 投票する
1 に答える
113 参照

.net - 「ターゲット フレームワーク」は、Visual Studio での machine.config と GAC の使用方法にどのように影響しますか?

プロジェクトのターゲット フレームワークがどのように使用され、アセンブリの読み込みにどのように影響するかを理解しようとしています。これが問題です。

Visual Studio 2015 Community では、デフォルトのターゲット フレームワークは .NET 4.6.1 です。この設定のままで、NuGet を使用して Npgsql 3.0.7 をドライバーとしてローカル バックエンド PostgreSQL データベースにインストールしました。使用時

DbProviderFactories.GetFactory(プロバイダー名)

VS は、プロバイダーが見つからないことを報告しました。(これは Npgsql 3.0.7 が machine.config と GAC にインストールされた後です。)

これを調査する際に ( DbProviderFactories Demystified )、次のステートメントが作成されます。

DbProviderFactories は、単に Type.GetType を呼び出して Assembly を読み込み、Type のインスタンスを作成します。

これにより、Npgsql 3.0.7 をもう少し調査することになりました。NuGet がアセンブリをインストールすると、次の場所に配置されます。

C:...\packages\Npgsql.3.0.7\lib\net45\Npgsql.dll

「net45」を .NET 4.5 として、プロジェクトのターゲット フレームワークを .NET 4.5.2 に変更しました。再構築すると、すべてが警告やエラーなしで正常に実行されます。

では、「ターゲット フレームワーク」は machine.config と GAC の使用方法にどのように影響するのでしょうか?

説明(または参照)をありがとう。

注: ソリューション エクスプローラーには、Npgsql アセンブリが .NET 4.6.1 と互換性がないという警告はありませんでした。

0 投票する
1 に答える
239 参照

wcf - Visual Studio 2015 を使用して、WCF プロジェクトのターゲット フレームワークを .NET 4.5.2 から 4.0 にダウングレードする方法

MVC などの他の種類のプロジェクトをダウングレードする方法に関する投稿をたくさん見ますが、WCF プロジェクトを 4.5.2 から 4.0 にダウングレードする方法が見つかりません。

0 投票する
0 に答える
57 参照

asp.net - ASP.NET targetFramework

問題: ここに画像の説明を入力

ASP.Net WebApp をデプロイして問題を解決するために、次の手順を実行しました。

  1. 次のコマンドで IIS に適切な NetFramework をインストールしました

"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe" -iru

  1. ここに画像の説明を入力

  2. ここに画像の説明を入力

何も機能しません。