7

SDK がインストールされていないマシンで Web プロジェクトをビルドすると、次の警告が表示されます。

警告 MSB3644: フレームワーク ".NETFramework,Version=v4.0" の参照アセンブリが見つかりませんでした。これを解決するには、このフレームワーク バージョンの SDK または Targeting Pack をインストールするか、SDK または Targeting Pack がインストールされているフレームワークのバージョンにアプリケーションを再ターゲットします。アセンブリはグローバル アセンブリ キャッシュ (GAC) から解決され、参照アセンブリの代わりに使用されることに注意してください。そのため、アセンブリが目的のフレームワークを正しく対象としていない可能性があります。

明らかに、警告を取り除く 1 つの方法は、SDK をインストールすることです。ただし、この場合、他の方法でマシンの状態を変更することなく、この警告 (ほとんど無害です) をビルド出力から単に抑制しようとしています。

/p:NoWarn=3644 を msbuild に渡そうとしました (コマンドラインで msbuild からすべてのコンパイラとコード分析の警告をどのように抑制できるかなどの他の投稿に基づいています) が、効果はありませんでした。

4

1 に答える 1

3

NoWarnCscおよびVbcタスクによってスローされるコンパイル警告に適用されます。

MSB *警告は、コアMSBuild警告です。MSB3644警告を抑制するには、明示的なパスを渡しますTargetFrameworkMoniker

msbuild your.csproj /t:Rebuild /p:TargetFrameworkMoniker=".NETFramework,Version=v4.0"

可能な入力のリストはここにあります。

v1.1.4322
v2.0.50727
Client
v4.0
v4.0.30319
.NET Framework, Version=v4.0, Profile=Client
.NET Framework, Version=v4.0
.NET Framework, Version=v4.0.1, Profile=Client
.NET Framework, Version=v4.0.1
.NET Framework, Version=v4.0.2, Profile=Client
.NET Framework, Version=v4.0.2
.NET Framework, Version=v4.0.3, Profile=Client
.NET Framework, Version=v4.0.3
.NET Framework, Version=v4.5

MSBuild 4.5には、これらの警告に役立つ可能性のある新しいフラグがIgnoreVersionForFrameworkReferencesあります。

于 2012-04-04T07:39:24.007 に答える