MS-Build2017「Microsoft.WebApplication.targets」がありません


86

ビルドサーバー(jenkins)をVisual Studio2015から2017にアップグレードしようとしています。MS-Buildを介してビルドしています。この説明に従ってMS-Buldツールをダウンロードしてインストールしました回答で。プロジェクトをコンパイルすると、Microsoft.WebApplication.targets見つからなかったエラーが発生します。

詳細なエラー:

 error MSB4226: The imported project "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\Microsoft\VisualStudio\v15.0\WebApplications\Microsoft.WebApplication.targets"

MS-Buildディレクトリで検索を実行しました。

PS C:\Program Files (x86)\MSBuild> dir -Recurse -Filter "Microsoft.WebApplication.targets"


    Directory: C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\WebApplications


Mode                LastWriteTime         Length Name                                                                                                                                                                                                            
----                -------------         ------ ----                                                                                                                                                                                                            
-a----       11.01.2012     00:23          19654 Microsoft.WebApplication.targets                                                                                                                                                                                


    Directory: C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\WebApplications


Mode                LastWriteTime         Length Name                                                                                                                                                                                                            
----                -------------         ------ ----                                                                                                                                                                                                            
-a----       22.07.2013     01:25          19995 Microsoft.WebApplication.targets                                                                                                                                                                                


    Directory: C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\WebApplications


Mode                LastWriteTime         Length Name                                                                                                                                                                                                            
----                -------------         ------ ----                                                                                                                                                                                                            
-a----       06.07.2015     21:55          20118 Microsoft.WebApplication.targets                                                                                                                                                                                


    Directory: C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\WebApplications


Mode                LastWriteTime         Length Name                                                                                                                                                                                                            
----                -------------         ------ ----                                                                                                                                                                                                            
-a----       22.07.2013     01:25          19995 Microsoft.WebApplication.targets

ご覧のとおり、ファイルは古いコンパイラバージョン用に存在しますが、v15.0では欠落しています。

また、ビルドサーバーにVisual Studio2017をインストールしました。Visual Studio 2017でコンパイルすると、プロジェクトは正常にビルドされます。

この問題を解決するためのヒントはありますか?考えられる解決策の1つは、C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v15.0\WebApplicationsポイントから古いv14.0ファイル(の下にありますC:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\WebApplications)へのシンボリックリンクを生成することです。

THX



1
VS 2019を使用しているプロジェクトでこの問題が発生しました。この問題を修正するには、csprojファイルを開いて、<Import Project = "$(MSBuildExtensionsPath32)\ Microsoft \ VisualStudio \ v14.0 \ WebApplications \ Microsoft.WebApplication.targetsという行を特定しました。 "/>と<プロジェクトのインポート=に置き換え" $(MSBuildExtensionsPath32)\マイクロソフト\ VisualStudioを\ V $(VisualStudioVersion)\ webアプリケーション\ Microsoft.WebApplication.targets」/>
tmutton

回答:


130

「Web開発ビルドツール」のワークロードが不足しているようですMicrosoft.VisualStudio.Workload.WebBuildTools

ここ(VS2017)またはここ(VS2019)からビルドツールインストーラーをダウンロードして実行すると、インストールできます。

vs_buildtools.exe --add Microsoft.VisualStudio.Workload.WebBuildTools

またはvs_buildtools.exe、GUIで「Web開発ビルドツール」コンポーネントを開いて選択します。

GUIからのスクリーンショット


3
このコマンドを実行するにはどうすればよいですか?その与える「vs_buildtools.exe」は、開発者ツール2017で内部または外部コマンドエラーとして認識されません
Developerzzz

26
「VisualStudio2017のビルドツール」インストーラー(visualstudio.com/thank-you-downloading-visual-studio/…)を既にダウンロードしている場合は、そのインストーラーを起動し、[変更]をクリックして、[Web開発ビルドタスク]にチェックマークを付けます。 「ワークロードモジュールのチェックボックス。次に、[変更]ボタンをクリックして、インストーラーを終了させます。
spiralis 2017

はい、インストールするには上記のコマンドラインを使用する必要があります。GUIでは見つかりません。
sky91 2017

4
提供されたリンクからインストールBuild Tools for Visual Studio 2017しましたWeb development build tasksが、それでもC:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v15.0\WebApplicationsフォルダが作成されません..iも表示されません..ivs_buildtools.exe全体を検索しました `c:`
LP13 2018

1
ありがとう..VS2017からの値がstackoverflow.com/questions/47077150/$(MSBuildExtensionsPath)に変更されたようですC:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild

88

上記の受け入れられた答えは、技術的には正しくなく、少なくとも私にとっては少し混乱し、Visual BuildProfessionalを機能させるために1つの追加手順が必要でした。

  1. vs_buildtools.exeは技術的には存在しません。私は作成しなければなりませんでしたそのファイルがどこにあるかを尋ねる質問する必要がありました。vs_buildtools.exeがvs_buildtools_ *******。exeであり、実際のインストールプログラムであることは明らかではありませんでした。さらに、上記の「-add ***」は単なる省略形です。GUIに移動して、両方のワークフロータスクを確認できます。それは同じことをします。必要ではありませんが、vs_buildtoolsファイルを使用することになりました。

  2. VSBProはまだ私のプロジェクトをビルドしませんでした。上記と同じエラーがスローされました。秘密のソースは、単にWebApplicationsフォルダをにコピーするC:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\Microsoft\VisualStudio\v15.0ことC:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v15.0でした。その後、プロジェクトを再構築しましたが、すべて問題ありませんでした。WebApplication.targetsファイルを予想される場所に配置しました。

マイクロソフトがそれを行うことができなかった理由は私を超えています。また、なぜ別のインストール。VS17は膨大な量のものをインストールします。いつものように、ビルドツールが暗示されます。なんでも。

うまくいけば他の人の助けになるので、私はこの答えを投稿しています。私は罠に陥り、プロジェクトが構築されなかったためにかなりの時間を失いました。この答えが物事を少し明確にすることを願っています。


4
「BuildToolsfor Visual Studio 2017」が実際にターゲットをC:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ BuildTools \ MSBuild \ Microsoft \ VisualStudio \ v15.0にコピーし、msbuildが実際にCでターゲットを見つけようとすることを確認しました:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v15.0なので、フォルダーをコピーする必要があります。どうやら最初のものはIDEによって使用され、2番目のものはスタンドアロンのmsbuildによって使用されます。奇妙な。
ZZZ 2017

1
手動で何もコピーしないでください。vs_buildtools.exeは単なるVisualStudioインストーラーです。ビルドツールまたはVisualStudioのインストールに役立ちます。どちらの場合も、さまざまなワークロードとコンポーネントをインストールできます。Visual Studioのワークロードをインストールする場合は、[変更]ボタンをクリックする必要があります。このようにして、必要なコンポーネントをインストールできます。
ウラジミールセリク2018

2
もちろんですが、問題は、VisualStudioインストーラーがWebApplicationsフォルダーを必要な場所の両方に確実に配置していないように見えることです。サラが示唆したように、手動コピーは、開発マシンでビルドを確実に機能させることができた唯一の方法です。
バートリード

21

Visual Studio 2015から2017にアップグレードした後、同様の問題が発生しました。Webアプリケーションプロジェクトを読み込もうとすると、次のエラーメッセージが表示されました。

インポートされたプロジェクト「C:\ ProgramFiles(x86)\ Microsoft Visual Studio \ 2017 \ Enterprise \ MSBuild \ Microsoft \ VisualStudio \ v14.0 \ WebApplications \ Microsoft.WebApplication.targets」が見つかりませんでした。また、$(VSToolsPath)のフォールバック検索パスで「WebApplications \ Microsoft.WebApplication.targets」を見つけようとしました-「C:\ ProgramFiles(x86)\ MSBuild \ Microsoft \ VisualStudio \ v15.0」。これらの検索パスは、「C:\ Users \ xxx \ AppData \ Local \ Microsoft \ VisualStudio \ 15.0_558e146f \ devenv.exe.config」で定義されています。宣言内のパスが正しいこと、およびファイルがディスク上の検索パスの1つに存在することを確認してください。

私がここで見つけこのエラーの解決策

私の場合、.csprojファイルには次の行が含まれていました。

<PropertyGroup>
    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.0</VisualStudioVersion>
    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v14.0</VSToolsPath>
</PropertyGroup>

交換した後v14.0v$(VisualStudioVersion)VSToolPathタグ、プロジェクトがロードすることができました。

私も交換v14.0によりv10.0VisualStudioVersion上記のリンクの解決策が示すようタグ。しかし、私にとっては、14.0のままにしておくことでも機能しました。

これらの行が最終的にどのように見えるかを次に示します。

<PropertyGroup>
    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>

.csprojにこれらの行がまったくない場合は、次の行の直前に手動で追加する必要があります。

<Import Project="$(VSToolsPath)\Web\Microsoft.Web.Publishing.targets" Condition="'$(VSToolsPath)' != ''" />

私の場合(わずかに異なるエラーメッセージですが同じ問題です)、それは次の行でした:

<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />

2011年以降にVisualStudioバージョンで作成されたプロジェクトには、次の行が含まれているようです。 VSToolsPath再定義さですが、古いファイルには含まれていません。Visual Studioは、新しいVSバージョンにアップグレードするときにそれらを自動的に追加することはありませんでした。そのため、それらがない場合は追加する必要があります。

この情報のソース:https//developercommunity.visualstudio.com/content/problem/27735/project-fails-to-load-with-error-regarding-microso.html?childToView = 123664#comment-123664 ([表示]をクリックしますディスカッションスレッド全体を表示するには、コメント追加してください。残念ながら、この「詳細」セクションのコメントに直接リンクすることはできません。)


11

で、2017ビルドツールをインストールするのは簡単ですWebBuildToolsすでに使用して、付属のオプションchocolateyをインストールしたら、管理コマンドプロンプトに次のように入力します。

choco install visualstudio2017buildtools -y

VS 2019の場合、同様です。

choco install visualstudio2019buildtools -y

2
特定のバージョンをインストールする必要はありませんcinst visualstudio2017buildtools -params '--add Microsoft.VisualStudio.Workload.WebBuildTools' -y ; cinst microsoft-build-tools -y
。Chocolatey

8

WebApplicationsからフォルダをコピーします

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v15.0

または、ビルドスクリプトで、コンパイルする前に次の行を追加します

Copy-Item "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\WebApplications" "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v15.0\WebApplications" -Recurse -Force

必ず昇格された権限で実行してください


3

VS 2017 pro、asp.net MVCアプリケーションを作成し、Jenkinsでビルドする方法は?

開発マシンとビルドサーバーの両方でvs2017proを使用する

VisualStudioをは15に設定されていることを確認してください
インポートプロジェクト= "$(MSBuildExtensionsPath32)\マイクロソフト\ VisualStudioを\ v15.0 \ webアプリケーション\ Microsoft.WebApplication.targets"条件= "false"に


jenkinsグローバル構成マネージャーでmsbuildツールをC:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Professional \ MSBuild \ 15.0 \ Bin \ MSBuild.exeに設定します

jenkinsを使用して、windowsコマンドバッチを実行します
。retorenugets: "C:\ Program Files(x86)\ Jenkins \ tools \ nuget \ NuGet.exe" restore "C:\ Program Files(x86)\ Jenkins \ workspace \ theapp_build \ theapp。 sln」

jenkinsを使用して、windowsコマンドバッチを実行します。MSBuild
ビルドファイル:theapp.sln
コマンドライン引数:/ nologo / t:restore / t:rebuild / p:Configuration = "Debug" /p:VisualStudioVersion=15.0


3

VS 2019の場合、以下をコピーして修正しました。

C:\ Program Files(x86)\ Microsoft Visual Studio \ 2019 \ Enterprise \ MSBuild \ Microsoft \ VisualStudio \ v16.0

C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio


Cを取得する方法:\プログラムファイル(x86の)VS2019のための\のMicrosoft Visual Studioの\ 2019 \エンタープライズ\ MSBuildの\マイクロソフト\ VisualStudioを\ v15.0
somegeek

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.