このプロジェクトにOutputPathプロパティが設定されていません


120

Visual Studio 2008でx86デバッグモードからプロジェクトをコンパイルしようとすると、このエラーが発生します。問題のあるプロジェクトのプロパティグループを見ると、出力パスが設定されていることがわかります。

以下は、その.csprojファイルのプロパティグループセクションです。

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
  <DebugSymbols>true</DebugSymbols>
  <OutputPath>bin\x86\Debug\</OutputPath>
  <DefineConstants>DEBUG;TRACE</DefineConstants>
  <BaseAddress>285212672</BaseAddress>
  <FileAlignment>4096</FileAlignment>
  <DebugType>full</DebugType>
  <PlatformTarget>x86</PlatformTarget>
 <ErrorReport>prompt</ErrorReport>

誰でもこれに光を当てることができますか?

注:このデバッグと任意のCPUをコンパイルすると、機能しました。

更新:エラー1このプロジェクトのOutputPathプロパティが設定されていません。有効な構成/プラットフォームの組み合わせを指定したことを確認してください。構成= 'デバッグ'プラットフォーム= 'x86'


わかりました。どの構成とプラットフォームを使用していますか?デバッグ+ x86または他の何か?
Ondrej Tucny

はいVS構成マネージャー、デバッグ+ x86を選択
Amzath

@DmitryShkuropatsky更新されたエラーメッセージ
Amzath 2012年

1
それは正しいようです。エラーを引き起こす可能性のある別のプロジェクトがソリューションにありますか?
Dmitry Shkuropatsky 2012年

@DmitryShkuropatskyそうですね、問題があった別のプロジェクトでした。しかし、VSはコンパイル中のプロジェクトについて不満を言っていました
Amzath

回答:


214

Visual StudioのConfigurationManagerを介して新しい構成を追加した後も、まったく同じエラーが発生しました。

ソリューション全体(および各プロジェクト)に 'Production'構成が追加されたときに、OutputPath要素 .csprojファイルに追加されなかったことが判明しました。

修正するには、プロジェクトプロパティの[ビルド]タブに移動し、OutputPathを\bin\Production\から\bin\Production(末尾を削除\)に変更して、変更を保存しました。これにより、.csprojファイルにOutputPath要素が強制的に作成され、プロジェクトが正常にビルドされました。

私にはグリッチのように聞こえます。


7
この水銀エラーをうまくキャッチしました。単一のスラッシュが大きな違いをもたらすことができるとは決して想像もしなかったでしょう。良い答えのバッジを持っている。
ouflak 2017年

8
私の場合は、projのファイルを構築する、との違いany cpuanycpu問題が、あなたのポストだったが、私はそれを参照してください助けました。
ジョシュアドレイク2017年

2
ローマに感謝します。私の日を救ってくれました...もし私があなたの答えを100回賛成できたとしたら!:)
マーティン

2
VS 2017 v15.6.6でこれに遭遇しました。ベーコンは保存されました。ありがとうございます。
Angrist

1
@Joshua Drake、これはVSTSを使用する場合の重要な問題です。オンラインのビジュアルスタジオは「any cpu」を使用し、ローカルのビジュアルスタジオは「anycpy」を使用します。ビルドスクリプトにとって重要です。
FrankyHollywood

27

見つかりませんでしたアセンブリを参照するプロジェクトがソリューションにある場合、VS 2008でこのエラーが発生することがあります。これは、アセンブリがソリューションの一部ではないはずの別のプロジェクトからのものである場合に発生する可能性があります。この場合、正しいプロジェクトをソリューションに追加するだけで解決します。

ソリューションの各プロジェクトの参照セクションを確認してください。それらのいずれかの隣に赤いxの付いた参照がある場合、それはあなたが問題を発見したことを意味します。そのアセンブリ参照はソリューションでは見つかりません。

エラーメッセージは少しわかりにくいですが、何度も目にしました。


2
私の場合、それは「黄色の警告」
でした

26

WiXを使用している場合は、こちらをご覧ください(バグがありますhttp://www.cnblogs.com/xixifusigao/archive/2012/03/20/2407651.html

新しいビルド構成が.wixprojファイルのさらに下のファイルに追加される場合があります。つまり、他の無関係なXML要素によって兄弟の構成定義から分離されます。

ビルド構成を定義する.wixprojすべての<PropertyGroup>セクションが互いに隣接するようにファイルを編集するだけです。(.wixprojVS2013でを編集するには、ソリューションエクスプローラーでプロジェクトを右クリックし、プロジェクトをアンロードします。もう一度右クリックして、[Edit YourProject.wixprojを編集します。ファイルの編集後に再ロードします。)


1
おかげで、これで解決しました。プロジェクトに追加した構成が多いほど、多くの奇妙な動作がありました。プロジェクトファイルをクリーンアップするとすぐに、すべてが正常に機能しました。(このバグは2012年に最初に報告されましたか?素晴らしい...)
Kirschi、2015

ありがとう、これで修正されました
PeterD

15

これは、次の行を.csprojファイルの先頭近くに移動したために起こりました。

  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets"/>

これは、Configuration | Platformを定義するPropertyGroupsの後に配置する必要があります。


11

プロジェクトのビジュアルスタジオに表示されるエラー(Aとしましょう)には問題はありません。プロジェクトごとに1行ずつビルドの出力ウィンドウを見ると、プロジェクトAでアセンブリと呼ばれていた別のプロジェクト(B)について問題があることがわかりました。プロジェクトBがソリューションに追加されました。しかし、プロジェクトAでは、別の場所からのアセンブリ参照としてではなく、プロジェクト参照として参照されていませんでした。その場所には、プラットフォームAnyCpu用にコンパイルされたアセンブリが含まれています。次に、アセンブリ参照をプロジェクトAから削除し、プロジェクトBを参照として追加しました。コンパイルを開始しました。この修正がどのように機能したかはわかりません。


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

AnyCPU(スペースなし)も私のために働いた。リーに感謝します。
16年

1
「ソリューションまたはpackages.configへのパス」を.slnから.vbprojに変更した後、TFS 2017でビルドプロセスを実行中にエラーが発生しました。BuildPlatformをAnyCPUに変更することもできました。ここでの「プラットフォーム」の下のメモを参照してください。docs.microsoft.com/en-us/vsts/build-release/tasks/build/...
Mr.Zzyzzx

2
私の場合、TFSからビルドを起動すると"any cpu"、BuildPlatformのデフォルト値がでした。"AnyCPU"問題を解決するために変更。
XouDo

これは2020年です。AnyCPUとAnyCPUはまだ問題を引き起こしています。私はVS2019を使用していますが、まだ新しいプロジェクトでこれを取得しています。MSなぜ開発者コミュニティを罰するのですか?
クリスチャン

9

同じエラーが発生しましたが、問題は、別のソリューションからの参照アセンブリに存在しないソリューションで新しい構成を作成したことが原因であることが判明しました。

これは、関連するソリューションを開き、それに新しい構成を追加することで解決できます。

この投稿では、ソリューション内のすべてのプロジェクトが正しい構成であることを既に確認した後で、参照されているアセンブリを確認するというアイデアが得られました。

http://gabrielmagana.com/2010/04/solution-to-the-outputpath-property-is-not-set-for-this-project/


7

ビルドパイプラインで.slnではなく.csprojをビルドするように設定した後、Azure DevOpsからの出力としてこの問題が発生しました。

私のための解決策:影響を受けるプロジェクトの.csprojを編集してから、全体をコピーします

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCpu' ">

ノード、貼り付け、最初の行を次のように変更します。

    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|any cpu' ">

その理由は、私の場合、エラーは

Please check to make sure that you have specified a valid combination of Configuration and Platform for this project.  Configuration='release'  Platform='any cpu'.  

Azureがデフォルトの "AnyCpu"ではなく "any cpu"を使用する理由は、私には謎ですが、このハックは機能します。


あなたのアイデアに従うことで、私の場合、プロジェクトを変更する必要はないが、代わりにDevOpsのVisual Studioビルドステップで、AnyCpu値を持つ変数を使用するように構成フィールドを設定しました。
donatasj87

@ donatasj87このフィールドの完全な値を投稿していただけませんか?
ジェイ

1
完全な値はまったく同じですが、これもTFSビルドで機能するはずです。.csprojファイルに設定されている値と一致する必要があるだけです。あなたはこの絵でそれを見ることができます:pasteboard.co/JbdvBT5.pngを
donatasj87

4

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


3

私が持っています:

  1. 問題のあるプロジェクト右クリック -> プロジェクトのアンロード
  2. プロジェクト右クリックし編集* .csprojを選択します。
  3. 特定の名前とターゲットプラットフォームで動作する既存の構成から構成をコピーして貼り付けます(リリース| x64がありました):

    <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
      <OutputPath>bin\x64\Release\</OutputPath>
      <DefineConstants>TRACE</DefineConstants>
      <Optimize>true</Optimize>
      <DebugType>pdbonly</DebugType>
      <PlatformTarget>x64</PlatformTarget>
      <ErrorReport>prompt</ErrorReport>
      <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
      <Prefer32Bit>true</Prefer32Bit>
    </PropertyGroup>
  4. プロジェクトを右クリック -> プロジェクトを再読み込み
  5. プロジェクト/ソリューションを再構築

3

(私の場合のように)MSBuildを使用してコマンドラインからプロジェクトをコンパイルしようとしたときにのみこのエラーが発生する場合、解決策は、のような引数を使用して手動で出力パスをMSBuildに渡すことです/p:OutputPath=MyFolder


2

別のクレイジーな可能性:Branch \ Main、Main、Releaseを隣り合わせに配置するという単純なソース管理の配置に従い、Branch \ MainではなくMainから既存のプロジェクトを追加することになった場合(作業ソリューションがBranch \であると仮定した場合)メイン)、このエラーが表示される場合があります。

解決策は簡単です:適切なプロジェクトを参照してください!


2

プロジェクトをソリューションに追加し、同じソリューション内のさらに別のプロジェクトから参照すると、この問題が発生しました。参照の上に黄色の警告アイコンが表示され、パスが空であることに注意してください。

解決策は、@ Amzathが提案したものと同様でした。私のプロジェクトは、さまざまなターゲットフレームワークでコンパイルされていました。.NET 4.0対4.5。


2

私の場合、アプリのビルドアドレスがオフになっている別のコンピューターに設定されていたため、オンにしてVSを再起動すると問題が解決しました。


2

別の原因:ソリューションXでプロジェクトAからプロジェクトBにプロジェクト参照を追加します。ただし、すでにプロジェクトAが含まれているソリューションYは、プロジェクトYにプロジェクトBも追加するまで壊れています。


2

新しい構成を追加して「デバッグ」および「リリース」構成を削除した後も、同じ問題が発生しました。私の場合、cmdファイルを使用してビルドおよびパブリッシュプロセスを実行していましたが、同じエラーがスローされました。 私のための解決策: csprojファイルで以下:

<Configuration Condition=" '$(Configuration)' == '' ">Debug< /Configuration>

明示的に指定しなかった場合は、構成を「デバッグ」に設定していました。ノード値を「デバッグ」からカスタム構成に変更した後、すべてがスムーズに機能しました。これがこれを読んでいる人を助けることも願っています:)


このソリューションの詳細は、このフォーラムの投稿に記載されています。 social.msdn.microsoft.com/Forums/vstudio/en-US/...
サニーTambi

2

同じ問題が発生しました。すべての<PropertyGroup Condition=" '$(Configuration)|$(Platform)' ... >要素を並べるように.wixprojを編集するだけ です。

それで私の問題は解決しました


1

私が使用していたWiXプロジェクトは、x64全体的に構成マネージャーにハードセットされていました。ソリューションのカスタムアクションプロジェクトを作成するとき、デフォルトですべてx86.csprojファイル内にありました。そのため、プロジェクトをアンロードし、すべてx86x64に変更して編集し、保存して再ロードしました。その後は問題ありません。

なぜこれをしなければならなかったのか分かりません。構成マネージャーはx64としてビルドするように設定されていましたが、csprojファイルに設定されていません:(


0

ここに投稿された他のすべての提案を試した後、私は.csprojファイルから次のセクションを削除することで解決策を見つけました。

  <ItemGroup>
    <Service Include="{808359B6-6B82-4DF5-91FF-3FCBEEBAD811}" />
  </ItemGroup>

どうやら、元のプロジェクトのこのサービス(ローカルマシンでは利用できません)は、コンパイルに不可欠ではなかったにもかかわらず、ビルドプロセス全体を停止させていました。


0

プロジェクトに新しいプラットフォームを追加した後、この問題が発生しました。私の場合、.csprojファイルはPerforceソース管理下にあり、読み取り専用でした。チェックアウトしましたが、再起動するまでVSは変更を認識しませんでした。


0

Xamarinプロジェクトでも同様の問題が発生しました。まれなケースですが、他の誰かが問題を抱えている場合に備えて。私のプロジェクト構造は以下のようでした

  • xamarin.Androidプロジェクトは、xamarin.android.libraryプロジェクトからの参照を持っていました。
  • android.libraryプロジェクトのコードを使用してプラグインを作成しました。
  • 今ここに問題があります。xamarin.androidライブラリプロジェクトにプロジェクト参照またはnugetインストールを追加した場合。このエラーが発生します。開発者は、コードがAndroid.Libraryプロジェクト内にあると想定し、このプロジェクトの新しいプラグインを参照する必要があります。番号!
  • メインのAndroidプロジェクトに参照を追加する必要があります。なぜなら、plugin-> library-> mainプロジェクトの出力は生成されないからです。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.