「outputpathプロパティがこのプロジェクトに設定されていません」エラー


90

Visual Studio 2008にマルチプロジェクトソリューションがあります。Release-VersionIncrementと呼ばれる新しい構成をソリューションに追加し、「リリースの使用」構成をベースラインとして指定しました。すべてのプロジェクトファイルがその構成で更新されました。しかし、この構成を使用して特定のプロジェクトをコンパイルしようとすると、次のエラーが発生します。

エラー5 OutputPathプロパティがこのプロジェクトに設定されていません。有効な構成/プラットフォームの組み合わせを指定したことを確認してください。Configuration = 'Release-VersionIncrement' Platform = 'AnyCPU' C:\ WINDOWS \ Microsoft.NET \ Framework \ v3.5 \ Microsoft.Common.targets 539 9 DataConversion

ここで何が起こっているのですか?プロジェクトはリリースまたはデバッグ構成で正常にコンパイルされます。


6
TFSビルド定義のドロップダウンリストに「AnyCPU」ではなく「AnyCPU」があることに気づくまで、私はこれに何時間も苦労しました!!!!
マフィンマン

1
VS2012では、ビルド構成のドロップダウンは「Any CPU」ですが、.csprojファイル内は「AnyCPU」であるため、Jenkinsまたはコマンドラインでは「AnyCPU」を使用できます。
Jirong Hu 2016

回答:


94

通常、これはプロジェクトファイルのOutputPathプロパティが空白の場合に発生します。プロジェクトファイルは単なるMSBuildファイルです。Visual Studioで編集するには:プロジェクトを右クリックして[プロジェクトのアンロード]を選択し、アンロードしたプロジェクトを右クリックして[編集]を選択します。

Release-Versionincrementプロパティグループを探します。それは次のようになります

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release-VersionIncrement|AnyCPU' ">
  <OutputPath>bin\Release-VersionIncrement\</OutputPath>
  <DefineConstants>TRACE</DefineConstants>
  <Optimize>true</Optimize>
  <DebugType>pdbonly</DebugType>
  <PlatformTarget>AnyCPU</PlatformTarget>
  <CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
  <CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
  <ErrorReport>prompt</ErrorReport>
</PropertyGroup>

重要なのは、OutputPathですが、プロジェクトファイルに存在しますか?追加されていない場合は、追加して再試行してください。


33
出力パスが正しいにもかかわらずこのエラーが発生する場合は、アセンブリまたは他の存在しないプロジェクトへの参照がある可能性があります。古い参照を削除します。それが私の経験でした。
John K

3
私はこのエラーに遭遇し、プロジェクトファイルを直接変更する必要がありました。プロジェクトのプロパティページに「すべてのCPU」と表示されていても、プロパティは最初は空白に設定されており、環境変数からPlatform = BPC設定を取得しました。それを修正してプロパティページをAny CPUからx86に設定/リセットした後も、プラットフォームは「x86」(?!?)であると主張してビルドできませんでした。案の定、私はここの手順に従って、x86に設定されていることを確認したので、手動で編集して、みんなが再び幸せになりました。みんなありがとう!
DaveN59

2
私のプロジェクトファイルには、空ではないOutputPathを持つ予期されたPropertyGroupがあり、このエラーが発生していました。私が気付いた唯一のことは、この特定の構成のPropertyGroupがファイルのルートノードの下の最初の要素であり、他のすべての構成条件とは異なり、Condition属性に先頭と末尾のスペースがないことです。この時点で、この要素を他のいくつかの構成の下に移動し(なぜそれが問題になるのかわからないが、単に何かを試行しているだけだった)、条件に空白を追加した。この後、うまくいきました。どちらが違いを生んだのかわかりません。
セスフラワー

2
別の問題がありました。SlowCheetahを使用して、Windowsプロジェクトの構成変換を作成しました。構成には、@ sethflowersが示唆するような空白がありませんでした。私はそれらを追加しましたが、それは役に立ちませんでした。構成の間に別のプロパティグループがあることがわかりました。そのため、それを整理し(プロジェクト構成プロパティグループの下にプロパティグループを配置しただけ)、問題は解消しました。ここにすべての提案をありがとう。時間を節約できました!!!
Ralph Jansen 2013

7
Deffoは、\ p:Platform = "Any CPU"ではなく、\ p:Platform = "AnyCPU"で試してください。これでうまくいきました。ずっとこれを見ていた!
Lee Englestone 2013年

78

このエラーは、ビルドエージェントが" AnyCPU "(プロジェクトファイルで指定されている1ワード)ではなく、プラットフォーム " Any CPU "(スペースはVisual Studioに表示されます)を実行するように構成されている場合にも発生しました。


5
同じ問題が発生しました。ソリューションレベルでは「Any CPU」が有効ですが、プロジェクトレベルでは「AnyCPU」です。つまり、 msbuild myproj.sln /p:Configuration=Debug /p:Platform="Any CPU"問題ありませんでしたが、プロジェクトをビルドするときにmsbuild myproj.proj1.csproj /p:Configuration=Debug /p:Platform=AnyCPU、[OutputCPU]プロパティエラーを抑制するために、[ Any CPU:]のスペースを省略する必要がありました。
エミールG

2
信じられないほど、そしてCI構成のためのPITAとは何か。私は何日もこれに苦労してきました。
Jeremy Holovacs、2015

メインビルドサーバーでビルドできず、「AnyCPU」ではなく「AnyCPU」を渡したときにこのエラーが発生しました。チェック後、MSBUILDと他のソフトウェアのバージョン番号にいくつかの相違点がありました。あなたの答えのおかげで、
ジル・

1
スペースが犯人だったなんて信じられない!
アレクサンドラ

36

最初にMSBuildを使用したときも同じ問題がありました。私の解決策は、OutputPathプロパティを明確に使用することです。このような:

msbuild XXX.csproj /p:OutputPath=bin\Debug.

これにより、TeamCity Azureクラウドサービスビルドの問題が解決しました。+1
starmandeluxe 2016

VSOのCIビルドを使用する場合も同様です。
StriplingWarrior 2017

11

今回のケースでは、HP開発ボックスでビルドスクリプトを実行していました。HPには、独自の目的で設定したいくつかの環境変数があり、そのうちの1つはPLATFORM(明らかに、「HP Easy Setup」に使用されます)です。

PLATFORM環境変数の削除が機能しました。

また、プラットフォームを指定して、ビルドスクリプトの将来性を保証することもできます
msbuild /p:Platform=AnyCPU


これは私の新しいHPラップトップで私を捕まえました-@Bogginのおかげで-これは私には起こらなかっただろう。
Rob Cooper、

9

Visual Studioから「Platform = 'BPC'」と明確に報告された場合は、「Platform」環境変数を削除することで簡単に修正できます。

この悪い子を削除します。

ここでVisual Studioを再起動してください。


6

Richard Dingwall」が示唆したように、この問題は、実際には「AnyCPU」と表示されるMSBuildバージョンの代わりに、「Any CPU」の表示バージョンを使用するVSに関連しています

ビルド/新しいビルド定義または編集ビルド定義->プロセス->ビルドする構成に移動し、構成選択ダイアログを開き、「プラットフォーム」で「Any CPU」を選択する代わりに、手動で「AnyCPU」を追加します


6

言われたように、OutputPathを設定する必要があり、それ <Import Project="$(WixTargetsPath)" />を.wixprojファイルのに配置する必要があります


これは私の問題に関連していました.wixプロジェクトを作成した後に新しい構成を追加し、新しい構成をファイルの最後に追加したため、その新しい構成に関連するすべてのPropertyGroupsがこのインポートの後に配置され、トップは、他のもののすぐ隣にあり、それが私にとってうまくいきました。
エウジェニオ・ミロ

4

Platform環境変数を削除しました(BNBまたはそのようなsmthでした)。問題はなくなりました。


1
残念ながら、プラットフォーム環境変数を削除した後でも、完全な再起動が必要です。
79E09796 2013年

4

今日、この問題に遭遇したとき、x64プラットフォームをソリューションに追加していました。

私の場合、エラーは次のとおりです:

デフォルトのターゲット用に$ / ProjectDirectory / ProjectName.csprojを構築しました。c:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets(484):プロジェクトProjectName.csprojのOutputPathプロパティが設定されていません。このプロジェクトに対して構成とプラットフォームの有効な組み合わせを指定したことを確認してください。Configuration = 'Debug' Platform = 'x64'。ソリューションファイルなしでプロジェクトをビルドしようとしていて、このプロジェクトには存在しないデフォルト以外の構成またはプラットフォームを指定したため、このメッセージが表示される場合があります。

OutputPathこれは既存の有効なVSソリューションだったので、問題ないはずです。そこで、次のヒント「構成とプラットフォームの有効な組み合わせ」に移りました。

ああ!Visual Studioがビルドを試みていConfiguration='Debug', Platform='x64'ます。私のプロジェクトファイルを見ると、x64が可能なプラットフォームの1つとしてリストされていないことがわかりました。つまり、以下のエントリ(短縮)がありました。

  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
      <PlatformTarget>x86</PlatformTarget>
      <OutputPath>bin\x86\Debug\</OutputPath>  
      . . .  
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
      <PlatformTarget>x86</PlatformTarget>
      <OutputPath>bin\x86\Release\</OutputPath>    
      . . .
  </PropertyGroup>

簡単な修正:x64エントリを追加するだけです!

x86エントリをコピーして貼り付け、x64を使用するように変更しました。パスがx86ビルドを上書きしないように変更したことに注意してください。

  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
      <PlatformTarget>x64</PlatformTarget>
      <OutputPath>bin\x64\Debug\</OutputPath>    
      . . .
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
      <PlatformTarget>x64</PlatformTarget>
      <OutputPath>bin\x64\Release\</OutputPath>    
      . . .
  </PropertyGroup>

3

私はこれにしばらく苦労しましたが、その後、問題のあるプロジェクトをアンロードしてビルドし、ソリューションに再ロードすると、MSBuildが正しく機能しました。


3

スコットSとして、「プラットフォーム」環境変数削除する必要がありました。

次にVSを再起動し、問題ありません。エラーメッセージはもうありません...


これは、Build vNext MSBuildステップで指定したプラットフォームを削除したときにも機能しました。
4imble、2016年

2

問題は私のプロジェクト構成に関係していました。ここにシナリオがあります:

ソリューションAの参照:

プロジェクトXはプロジェクトYを参照プロジェクト
Y

ソリューションB(私が構築しようとしているもの)の参照:

プロジェクトXプロジェクトZ

私の解決策は、ソリューションAと同じ名前の構成を作成し、それを再構築してから、ソリューションBを再構築することでした。これで問題が解決しました。


1
私は同じエラーに遭遇し、この回避策は私のために働いた唯一のものでした。基本的に、私はプラットフォーム構成「Any CPU」でSilverlightプロジェクトを構築するソリューションプラットフォーム構成「Win32」と、silverlightプロジェクトをホストするプラットフォーム構成「x86」でWebアプリケーションプロジェクトを所有していました。msbuildが期待どおりに機能するためには、新しいプロジェクトプラットフォーム構成をSilverlightプロジェクト "x86"に追加する必要があります(古い構成を既定の構成のままにします)。
Rami A.

2

同じエラーメッセージが表示されました。これは、アンロードされ、リンカーが必要としないプロジェクトへの参照があるために発生しました(そうでない場合、コンパイル時に失敗します)。問題のある参照を削除することで問題は解決しました。


2

私の場合(VS2010)[ビルド]タブにある[出力パス]ボックスの文字列を削除し、空白のままにしました。次に、ソリューションを再構築しました。ビルドは成功し、VSは現在のディレクトリ「./」を「OutputPath」に挿入しました。現在のディレクトリ "./"を自分のパス( "bin \ x64 \ Release \"-これはVSが最初に文句を言っていた正確なフォルダーパスであると言えます)に置き換えて、再構築が再び成功しました。


1

私の場合、プロジェクトファイルでOutputPathプロパティが設定されています。しかし、アンロード、リロード、そしてリビルドによって修正されました。


1

ソリューションに新しいソリューション構成を追加すると、「プロジェクトXにOutputPathプロパティが設定されていません。このプロジェクトに構成とプラットフォームの有効な組み合わせが指定されていることを確認してください。構成= 'QA 'Platform =' AnyCPU '。 このエラーは、他のプロジェクトがこのプロジェクトへのプロジェクト間参照を追跡しようとしている、このプロジェクトがアンロードされている、またはソリューションに含まれていない、および参照元プロジェクトがそうでない場合にも表示される可能性があります同じまたは同等の構成またはプラットフォームを使用してビルドします。 "。

私の場合、問題はエラーの説明の強調表示された部分が原因でした。私のソリューションのプロジェクトXの部分には、別のソリューション(別のブランチ)のProjectYへのプロジェクト参照がありました。

現在のソリューションでProjectYへのプロジェクト参照を使用するようにプロジェクトXを変更することにより、この問題を解決しました。これが同様の問題を抱えている誰かに役立つことを願っています。


0

私の場合、新しい "PropertyGroup" XMLブロックがドキュメントの下部に生成されました。他の「PropertyGroup」タグの後に置き換えたところ、問題は解決しました。


0

既存のプロジェクトを参照する新しいソリューションで新しいプロジェクトを作成しました。このエラーは、既存のプロジェクト(プロジェクト1など)を追加し、プロジェクト1が参照する他のプロジェクトを追加せずにビルドしようとすると発生します。

関連するすべてのプロジェクトが新しいソリューションに追加され、エラーが消えたことを確認してください。


0

同じエラーが発生したため、プロジェクト設定を確認しましたが、[ビルド]セクションに[ビルド出力パス]オプションがあります。そして、値は空でした。「bin \」の値を入力すると、エラーが消えました。それは私の問題を解決しました。


0

あなたはのparamとしてOutputPath設定し、パスすることを決定した場合のようなものです。bin\Release\\その後、追加することを忘れないでください\:そのような終わりに/p:OutputPath=bin\Release\\\\それはそうだった実現するために私にしばらく時間がかかりました


0

私も同じ問題を抱えていました。私はそれをきれいに修正し、プロジェクトを再構築しました。


0

私は同じ問題を抱えていましたが、役立つ唯一の解決策は、各NCrunchプロジェクトでビルド構成を手動で設定することでした。

各ビルドのステータスを確認できるNCrunchウィンドウを開き、ビルドが失敗したことを確認できます。ビルドに失敗したプロジェクトを右クリックし、[選択したコンポーネントの構成]をクリックします。[ビルド設定]の下にある[ビルド構成を使用]プロパティが[デバッグ]に設定され、[ビルドプラットフォームを使用]プロパティが次のように設定されています。例:「AnyCPU」。(設定したビルドと構成の設定は、構成設定に存在する必要があることに注意してください)

これをすべてのプロジェクトで行いますが、テストプロジェクトでは行いません。この後、すべてがうまくいきます。


0

同じ問題がありましたが、失敗したプロジェクトに不足している構成を追加して修正しました。

ビルド->構成マネージャー->

構成列の下に追加

注:これはたまたまカスタム構成があり、新しく作成されたプロジェクトに構成がないためです。


0

誰かが彼のNCrunchログでこれを取得している場合、PropertyGroup定義内の値 'Debug' / 'Release'および 'AnyCPU' / 'x86' がプロパティグループの前にあり、それらの値を条件に使用しているかどうかを確認します。

<PropertyGroup>
    <!-- this one first -->
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <XXX>...</XXX>
  </PropertyGroup>

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
    <XXX>...</XXX>
</PropertyGroup>

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
    <XXX>...</XXX>
</PropertyGroup>

私のために働いた。


0

私の場合、カスタム構成を含むプロパティグループを標準の構成グループの下に移動しようとしました。それは私のためにそれを解決しました。


0

VS2015 Professionalでこれをちょうど持っていました:

プロジェクト 'xxxxx.csproj'のOutputPathプロパティが設定されていません。このプロジェクトに対して構成とプラットフォームの有効な組み合わせを指定したことを確認してください。

これは、デバッグ/リリースと異なるターゲット間のマルチプロジェクトジャグリングでもあります。私はある時点でビルド構成をいじっていましたが、VSを台無しにする可能性があることを知っているので、リポジトリからそれらを引き戻しました。まだダメ。OutputPathが設定され、既知の良好な状態のdiffがなくなったため、ローカルインストールに間違いがありました。

VS2015インストーラーを開き、[修復]をクリックして、正常に戻ります(少なくとも、これまでのところ!)

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