ソリューションの構築時にVisual Studioがプロジェクトをスキップする理由を特定する方法


92

私は誰か他の人の仕事をデバッグしていて、解決策は非常に大きいです。すべてをビルドしようとすると、ソリューション内のいくつかのプロジェクトがビルドされず、スキップされます。ビルドプロセス中に出力ウィンドウを表示すると、次のようになります。

1> ------すべて再構築をスキップ:プロジェクト:pr1lib ------

これらのビルドがスキップされた理由を確認するにはどうすればよいですか?追加の出力を見つけることができません。

これはVS2008であり、ソリューションはc#およびc ++コードで構成されています。


:の回答に加えて、必ずソリューション構成の設定を行うチェックされた状態での各プロジェクト(チェックボックスがチェックされている)を洗浄する必要があります/内蔵されているBuild > Configuration Manager: check as needed
メトロスマーフ

2
プロジェクトがスキップされる理由をトラブルシューティングするため。/flビルド設定に追加して、理由を含むmsbuild.logファイルを取得してください。例:skipped, due to false condition; ( ('$(Configuration)' == 'Release') and ('$(Platform)' == 'Any CPU') ) was evaluated as ( ('Debug' == 'Release') and ('AnyCPU' == 'Any CPU') ).
T_D

2
@T_D-Visual Studioのどこに「/ fl」を追加しますか?ログはどこに表示されますか?これを回答として追加した場合、私は賛成票を投じます。他のほとんどの回答は、元の質問に答えるのではなく、問題に対処するためのさまざまなランダムな推測です。
PaulG

@PaulG以下の私の回答を参照してください。オプションで設定するだけです。
ダレンウッド

回答:


85

ソリューションを右クリックし、[プロパティ]、[構成プロパティ]の順に選択します。ここで、ビルドするプロジェクトを選択できます。

[ 編集 ]:
Kdtのコメントを参照:...構成プロパティを調べたとき...ソリューションが「任意のCPU」をビルドするように設定されているときに、プロジェクトのビルドターゲットが「混合プラットフォーム」用に構成されました。

*この問題が発生したとき、メインプロジェクトには「すべてのCPU」しかなく、子DLLも「すべてのCPU」に設定されていましたが、そのプロファイルを削除して「x86」のみを残しました。DLLだけにx86を選択すると、動作が開始され
ます[/編集]


20
私は不思議な「スキップされたビルド」を持っていて、構成プロパティを調べたところ、プロジェクトはビルド用にマークされていました。ただし、ソリューションが「すべてのCPU」をビルドするように設定されている間、プロジェクトビルドターゲットは「混合プラットフォーム」用に構成されました。これらを変更して問題を修正しました。
kdt 2009

2
私の場合、すべてのプロジェクトとソリューションはすべて「すべてのCPU」に設定されていましたが、1つのプロジェクトがビルドをスキップしました。ソリューションを "Mixed Platforms"に設定してから、 "Any CPU"に戻した後でなければ、ビルドは行われませんでした。前後のソリューションファイルの差分を見ると、から{784BDC39-5783-4128-956E-99EA062FA8FB}.Debug|AnyCPU.ActiveCfg = Debug|AnyCPUに変わりました{784BDC39-5783-4128-956E-99EA062FA8FB}.Debug|AnyCPU.ActiveCfg = Debug|Any CPU。唯一の違いは、行の最後にある「すべて」と「CPU」の間に追加されたスペースです。
Simon Tewsi 2015

5
私の場合、すべてのプロジェクトは「すべてのCPU」に設定されており、プロジェクトを削除(プロジェクトを削除してもファイルは削除されません)し、ソリューションに再度追加することで問題が解決しました。
Hamid Mayeli

41

同じ問題が発生しました-「プロジェクトのアンロード」と「プロジェクトのリロード」で問題が解決しました!


私は同じ問題を抱えており、アンロード/再ロードは機能しますが、問題が再発するようです。これは、一連のプロジェクトで発生し、それぞれをアンロード/再ロードしなければならない場合に迷惑です...これを完全に回避する方法は?
リロン、2011年

これにより、ビルドを行おうとしたときに、Visual Studioが出力ウィンドウでプロジェクトをすでに最新であると誤って報告していたときの問題が修正されました。
Kevin Laity

28

ビルド、再ビルド、およびクリーン操作はスキップされていました。アンロードと再ロードは役に立ちませんでしたし、Visual Studioを再起動することもできませんでした。

ソリューションからプロジェクトを削除して追加し直すと、スキップされなくなりました。削除するには、ソリューションエクスプローラーでプロジェクトを右クリックし、[削除]> [OK]をクリックします。追加するには、ソリューションエクスプローラーでソリューションを右クリックし、[追加]> [既存のプロジェクト]をクリックしてプロジェクトを選択します。


6
そのプロジェクトにすべてのProjectReferenceを再度追加する必要があることに注意してください。
ジョセフ

9

構成がx64でx64コンパイラがインストールされていない場合、プロジェクトはスキップされます。


1
+1天才。SP1は次の場所にあります:microsoft.com/download/en/details.aspx
id

x64コンパイラがインストールされていない場合、x64を選択することもできません。
Calmarius 2013年

ソリューションとプロジェクトの構成では、「x64」というタイトルのエントリを定義して使用できます。プロセッサアーチの3番目のddl(プラットフォームターゲット-ビルドプロパティページの半分)は利用できないものです
StingyJack

9

私の解決策は前述のとおりです:削除->既存のプロジェクトを追加

しかし、このソリューションは、プロジェクト間の参照がなくなることを意味します

:再追加の参照を避けるために、そしてあなたがバージョン管理システムを使用している場合場合は、それは次の手順でacheveゴールすることが可能であるものは何でもGITまたはTFSかのように:

  1. 操作の前にすべての変更がコミット/チェックインされていることを確認してください

  2. ソリューションから削除して既存のプロジェクトを追加するすべてのプロジェクトを実行します。

  3. .slnファイルが変更されていることに注意してください

  4. 新しい.slnファイルを保持しますが、バージョン管理システムですべての.cspojファイルへの変更を元に戻します



5

Visual Studio 2008の場合、64ビットコンパイラがインストールされていなかった可能性があります。

コントロールパネル->プログラムと機能-> Microsoft Visual Studio 2008 Professional-> [ダブルクリック]

Visual Studioダイアログ

次->機能の追加/削除->(下)Visual C ++->(選択)x64コンパイラとツール


3

こんにちは、これを修正しました。それが役立つかもしれないと思った。おそらく、対応するコンパイラをVisual Studioと共にインストールしていません。これは今日私に起こりました-デフォルトでは、VS 2008インストーラーはx64 C ++コンパイラーをインストールしません。

SP1がある場合は、VSのインストールを変更する前にアンインストールしてください。完了したら、SP1を再インストールします。


3

VS 2010にも問題があります。提案されたソリューションのうち、ビルド構成の編集、クリーニング、ターゲットフレームワークの変更/再変更は機能しません。ただし、プロジェクトのアンロードと再ロードは行います。


2

ビルドメニューに移動し、「構成マネージャー」を選択します。これにより、選択した構成でビルドするように構成されているプロジェクトが表示されます。


2

私にも似たようなことが起こりました。何が問題なのかはわかりませんが、CleanBuildRebuildなどは行われません。VisualStudio 2017で操作していて、netstandard2.0アセンブリが必要でした。私の問題は、どういうわけかプロジェクトのタイプが正しくないことでした。多分私はnetcoreappクラスライブラリなどから始めて、ソリューションファイルに詰まっているので、思い出せません。とにかく、私はプロジェクトをバックアップし、新しいnetstandardクラスライブラリプロジェクトを作成し、バックアップされたビットを考慮に入れました。HTH誰か。


2

ここで他の可能性の中で文書化する価値があるかもしれない奇妙なものがありました。

他の2つまたは3つのプロジェクトで使用されたコードを使用して、共有プロジェクトをソリューションに追加しました。ご存じのとおり-共有プロジェクトは単なるコードであり、従来の意味でのプロジェクトではありません。共有プロジェクトを「ビルド」することはできません。それは、他のプロジェクトに埋め込まれ、そこでビルドされるだけのコードです。

しかし、どういうわけか私のソリューションファイルは、共有プロジェクトがビルドを必要とする独自のものであるかのように更新されました。私がビルドしようとしていて、共有プロジェクトのコードを変更していないときはいつでも、それは「何も変更されていないので、それらのビルドをスキップする」と考えました

私は次のsolution.slnようなファイルで共有プロジェクトを見つけました:

Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Api.Common", "Api.Common\Api.Common.shproj", "{EC580471-D78A-4509-AC46-BD565553AD60}"

..それは結構です うまくいかないのは、このプロジェクトが同様に登場したこと GlobalSection(ProjectConfigurationPlatforms) = postSolutionです:

    {EC580471-D78A-4509-AC46-BD565553AD60}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    {EC580471-D78A-4509-AC46-BD565553AD60}.Debug|Any CPU.Build.0 = Debug|Any CPU
    {EC580471-D78A-4509-AC46-BD565553AD60}.Release|Any CPU.ActiveCfg = Release|Any CPU
    {EC580471-D78A-4509-AC46-BD565553AD60}.Release|Any CPU.Build.0 = Release|Any CPU

私は.slnファイルからこれらの4行を削除しました。


すごい!これで終わりです!私は削除すべての行を唯一の「グローバル」と述べ行で始まっていることの.slnファイルからと「EndGlobal」までのすべての行を削除しました。その後、再び機能しました。
火曜日

2
  1. ビジュアルスタジオを閉じる
  2. メモ帳でslnファイルを開く
  3. 次のようなものをすべて削除します。

4.ファイルを保存5.ビジュアルスタジオを開くなど


2
なぜこれが役立つのですか?いくつかの説明を追加し、できるだけ詳しく説明してください。そうすれば、将来の読者が、これらの手順を実行する必要がある理由を理解できるようになります。

2

私は15.9.11に更新しました...いくつかのビルドの後、同じ問題:ほとんどのプロジェクトがスキップされます(問題なく2番目にビルドされます)。私の場合、ソリューションのアンロード/再ロードは常に役立ちますが、すぐに再び発生します。

なぜかわかりません... VS2017の大きなバグを除いて

私は構成マネージャーをチェックしました、すべてのチェックマークはビルドするように設定されています。

多分、それはnugetパッケージと関係がありますが、それは単なる推測です

ソリューションにはc ++ / vcxprojのみがあり、csprojはありません。64と32の両方がインストールされています


2

まず、ビルドがプロジェクトをスキップする理由を診断する必要があります。したがって、詳細なビルド出力を取得するにdetailedは、次の場所で詳細度をに変更しVisual Studioます。

ここに画像の説明を入力してください


7
詳細設定は残念ながら役に立ちません。出力には、理由を説明せずに「スキップされたプロジェクト」のみが表示されます。
PaulG

1

同じ問題があり、プロジェクト設定がItanium CPU用であることがわかり、Intelに変更すると修正されました。


1

VS2005で同じ問題が発生していましたが、すべての構成が適切でした。Clean projectコマンドもスキップされていました。

最後にアンロード/リロードが魔法をかけました。


1

ソリューションエクスプローラーで[ソリューション]を右クリックし、メニューの下部にある[プロパティ]をクリックします。プロパティウィンドウで、左ペインの[ 構成プロパティ ] -> [ 構成 ]をクリックすると、右ペインにプロジェクトのリストが表示されます。ポップアップウィンドウで[ビルド]チェックボックスがオンになっていることを確認します。


1

ソリューションにNuGetプロジェクト(* .nuproj)ファイルが含まれている場合は、それをアンロードしてから、ソリューションを再ビルドしてください。

上記のいずれも機能しなかったため、これは私にとってはうまくいきました。


0

ソリューションとプロジェクトでx86と言うように設定されたターゲットプラットフォームを使用している場合、プロジェクトで実際に常に選択されているとは限らないことがあります。

再確認するには、プロジェクトのプロパティに移動し、ビルド->プラットフォーム設定でそのプラットフォームを選択できるかどうかを確認します。選択できない場合は、構成マネージャーに移動してその構成を作成する必要があります。


0

新しいPCの一部のWindows CEプロジェクトでこの問題が発生しました。「プロジェクトのアンロード」と「プロジェクトのリロード」は問題を修正するように見えましたが、実際にはVisual Studioは単に別のプラットフォームに切り替えてビルドしただけです。

私のWinCEプラットフォームはアクティブなプラットフォームとして示されていましたが、Visual Studioはそれを「実際に」認識していませんでした。解決策は、管理者権限を持つWinCE SDK再インストールすることでした。

  • Visual Studio 2008が実行されていないことを確認します。
  • 管理者として「Visual Studio 2008コマンドプロンプト」を開きます。Windows 7では、ショートカットを右クリックして[管理者として実行]オプションを選択します。
  • 次のコマンドを入力します。 msiexec /log SDKInstallLog.txt /package <the path to your .msi file>
  • カスタムを選択するか、完全なインストールピックカスタムを実行するかを尋ねられたら、ドキュメントのインストールを省略するようにインストーラーに指示します(この場合、この手順は不要でした。実際、既存のインストールを「修復」するように要求しました。 )
  • インストール

0

x64コンパイラがインストールされていない場合、VS 2008はx64ターゲットをスキップします。VS 2008はデフォルトではありません。なんてことだ。


0

Telerikの逆コンパイラからプロジェクトを生成し、それを再コンパイルしたところ、非常によく似た問題が発生しました。再構築しようとすると、プロジェクトはスキップされました。上記の提案の多くを試しましたが、私にとっては、プロジェクトのプロパティで選択された.NET Frameworkでした。

ソリューションファイルでプロジェクトを右クリックし、プロパティ、アプリケーションタブを選択して、ターゲットフレームワークを4.0から3.5に変更します。

次に、再構築すると、アセンブリ参照の欠落エラーが多数発生しました。これは、参照をまだ追加していないため、理にかなっています。


0

Visual Studio 2017の小さな更新を1つ更新すると、インストーラーがコンピューターを再起動するように通知しますが、再起動しませんでした。VisualStudio 2017でプロジェクトまたはソリューションをビルドすると、上記の同じ問題が発生します。キーなので、コンピューターを再起動しました。


0

Visual Studio 2017 15.9.4でこの問題が発生しました。しばらく検索を行った結果、ソリューションで、TFSにマージした後、プロジェクトの1つの.csprojファイルが破損していることがわかりました。(問題のあるプロジェクトをソリューションからアンロードすることで、他のプロジェクトを構築できます)。私の問題を解決した方法は、マージの前後に.csprojファイルを比較して修正したことです。修正するとは、自分のプロジェクトのタイプが.netStandardだったため、新しい.csprojファイル内のConfiguration PropertyGroupなどすべての不要な行を削除して、以前の.netstandardスタイルのバージョンと同様にすることです。


0

同様の問題があり、何らかの理由でソリューションエクスプローラーに読み込めないプロジェクトが1つありました。そのプロジェクトをロードしたとき、それは魅力のように働きました。


0

私はこのトラブルに巻き込まれました:

VS 2017を最新バージョン15.9.11に更新し、プロジェクトのいくつかを.net core 2.2に更新しました。最初にすべてのプロジェクトをロードして、ビルド/クリーニング/再ビルドを試みたところ、すべてスキップされました。解決するために以下に従ってください:

  1. 各プロジェクトをアンロードして再ロードしました。
  2. VSのすべてのインスタンスを閉じ、管理者としてVSを開きました(ショートカットを右クリックして、[管理者として実行]オプションを選択します)

これですべてが復活し、すべてのプロジェクトを正常に構築することができました。


0

ビジュアルスタジオ2017

構成マネージャーで構成を追加した後

プロジェクトを右クリック->プロジェクトのみ->ビルドのみ/再ビルドのみ/クリーンのみ

他のすべての設定が正しい場合。


0

問題:再構築、構築、クリーンで、2つを除くすべてのプロジェクトがスキップされました。

私にとってうまくいかなかったソリューション:

  1. ソリューションの構成設定は期待どおりだったので、それらの変更は役に立ちませんでした。

  2. アンロードと再ロードが機能しませんでした。

発生理由:

これは、対象の.NETフレームワークがこれら2つのプロジェクトではより高く(4.7)、他のプロジェクトではより低いために起こりました。最初に.NET 4.7をインストールするように求めるプロンプトが表示されましたが、マシンを再起動しないとインストールされていることを認識できませんでした。

機能したソリューション:

  1. マシンを再起動するとうまくいきました。再起動後、.NET 4.7がインストールされていることを正しく認識しました。
  2. または、プロジェクトを右クリックしてプロジェクトのターゲットフレームワークをダウングレードし、[プロパティ]-> [アプリケーション]-> [ターゲットフレームワーク]をクリックして、スキップされていた他のプロジェクトと同じように設定して、問題を解決しました。

さらに問題が発生しないように、最新の.NET Frameworkをインストールしてマシンを再起動することをお勧めします。


0

ビルドに失敗した依存プロジェクトがあるプロジェクトのビルドはスキップされます。

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