it-swarm-ja.com

サーバー2016での.NETターゲティングエラー

4.7.2にコンパイルされたアプリ(wcfサービス)があります。ソリューション内のすべてのプロジェクトは、そのフレームワークバージョンを対象としています。

サーバー(Windows Server 2016)に、Framework 4.7.2がインストールされています(エラーページにASP.NETバージョン:4.7.3282.0として報告されています)

WCFサービスを参照するときにスローされるエラー:

「Web.configファイルの要素の「targetFramework」属性は、.NET Frameworkのバージョン4.0以降(たとえば、「」)をターゲットにするためにのみ使用されます。「targetFramework」属性は、現在、より新しいバージョンを参照しています。インストールされている.NETFrameworkのバージョン。NETFrameworkの有効なターゲットバージョンを指定するか、必要なバージョンの.NETFrameworkをインストールしてください。」

Web設定から示されたエラー行は次のとおりです(エラーは25行目にあります)。

23行目:</ appSettings>
24行目:<system.web>
25行目:<compilation targetFramework = "4.7.2" />
26行目:<httpRuntime targetFramework = "4.7.2" />
27行目:<customErrors mode = "Off" />

コマンドプロンプトを開いてc:\ windows\Microsoft.net\framework64\v4.0.30319ディレクトリに移動し、「msbuild -version」を実行すると、応答します。

4.7.2053.0

一部のアプリプール設定を変更してみましたが、役に立ちませんでした。誰かアイデアがありますか?

編集:ソリューション内のすべてのプロジェクトをバージョン4.7にダウングレードしましたが、問題は解決したようです。サーバーは4.7.2がインストールされていることをすべて示しているため、理由はわかりません

1
Tom

Microsoftは、無限のバージョン管理の知恵で、私が見たMS Buildバージョン(4.7.2053.0)は実際にはFrameworkバージョン4.7であると見なしました。さらに、エラーページ(4.7.3xxx)に示されているバージョンは、実際にはASP.NETバージョンであり、フレームワークバージョンとは異なります。

したがって、バージョン4.7.2を使用していることがすべて示されているにもかかわらず(サーバー管理者が使用していることを含めるため)、実際には4.7を使用していました。

バージョン4.7.2をインストールすると、問題なく動作しました。

1
Tom