web-dev-qa-db-ja.com

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

Jenkins/MSBuildソリューションをビルドすると、このエラーが発生します

c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(483,9): error : 
The OutputPath property is not set for project '<projectname>.csproj'.  Please check to
make sure that you have specified a valid combination of Configuration and Platform 
for this project.  Configuration='Latest'  Platform='AnyCPU'.  You may be seeing this 
message because you are trying to build a project without a solution file, and have
specified a non-default Configuration or Platform that doesn't exist for this project. 
[C:\<path>\<projectname>.csproj]

何か案は?

[〜#〜] edit [〜#〜]

.csprojファイルにこれがあります

  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Latest|AnyCPU'">
    <OutputPath>bin\Latest\</OutputPath>
  </PropertyGroup>
55
Sachin Kainth

テキストエディタでcsprojを開き、プロパティグループセクションがあるかどうかを確認します。次のようになります。

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Latest|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Latest\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>Prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
  </PropertyGroup>

「最新」のビルド構成がありますか?上記のセクションをcsprojに追加しない場合。

50

VS2013/2015でsln/csprojプロパティを変更せずに、どのように機能するかを理解しました。

  1. .slnファイルをビルドする場合:
    1. /p:ConfigurationPlatforms=Release /p:Platform="Any CPU"
  2. .csprojファイルをビルドする場合:
    1. /p:Configuration=Release /p:Platform=AnyCPU
      1. "Any CPU" vs AnyCPU
  3. コード分​​析、fxcop、テストカバレッジ(NCover)ターゲット、およびMSBUILDが適切に配置されていることを確認してください。私の場合、その:
    1. C:\Windows\Microsoft.NET\Framework64\v4.0.30319しかし、Microsoftがcode base :: AMD(cross plt、x86&x64オプション)とWindows(cross、x86、x64)を構築するための6つのcmdオプションを提供し、コード開発が行われたときにわかるように異なる場合がありますデフォルトのJIT(PreJIT ngen.exe、econoJITが可能)

Power Shell + msbuildを使用すると、このトラブルシューティング以外にも対処できると思います。誰かに役立つかもしれません...

35
Saurabh

Csproj XMLを編集するのではなく、perlykingで述べたように、次のことがうまくいきました。ここに私が使用した手順があります。

  1. プロジェクトのプロパティを開きます。
  2. [ビルド]タブを選択します。
  3. [出力]セクションで、出力パスが設定されていることを確認します。 (設定されていない場合は、プロジェクトを保存すると動作します)。
  4. 設定されている場合は、出力パスの「参照...」ボタンをクリックします。
  5. フォルダー選択ダイアログが開いたら、ファイルブラウザーで1つ上のレベルに移動し、出力フォルダーを再度選択して[フォルダーの選択]ボタンをクリックします。
  6. プロジェクトのプロパティを保存すると、動作するはずです。
13
Bevan

@Jamesの発言に追加するために、VS2013でプロジェクトのコンパイルプロパティを見ると、ビルド出力パスwasが指定されていることがわかりました。しかし、.csprojファイルに直接、関連ビルド構成のOutputPath要素がありませんでした。そのため、VSで出力パスのマイナーな編集を行い、それを元に戻し、それを保存して、プロジェクトファイルに値を追加して、ビルドすることができました。

6
perlyking

同じ問題がありました。コマンドラインを使用してWindowsプラットフォームを更新しました。現在、windows @ 5.0.0バージョンに更新されました。次に、ファイル名「SQLite3.UWP.vcxproj」を検索する必要があります。 「v141」を「v140」に変更してみてください。現在、Visual Studio 2015 Professionalを使用しています。 Visual Studio 2017の場合、SQLite3.UWP.vcxprojファイルのバージョンを変更する必要はありません。

1

いくつかのプロジェクトで同じ問題が発生しました。プロジェクトに新しい構成を追加した後、プロジェクトファイルの最後にPropertyGroupが追加されました。

他のすべての構成PropertyGroupの直後にPropertyGroupを移動すると、問題が修正されました。

これがお役に立てば幸いです。

1
ACardenas

私の場合、このエラーは、出力フォルダーにドットが含まれていたために、現在のディレクトリに相対するようになりました。この問題は、ドットを削除することで解決しました。

問題のあるBuild output pathは:

.\bin\Output

次のように変更することで問題を解決しました

bin\Output

ビルド出力パスはプロジェクトプロパティの[Build]タブにあり、ConfigurationPlatformの組み合わせごとに異なるパスがあります。

1
JotaBe

MSBuildの一部のサービスファブリックに問題がありました。

最初のステップは、影響を受ける各プロジェクトを右クリックしてプロパティをプルアップし、[ビルド]タブを選択して、プラットフォームターゲットをx64に設定することでした。

2番目のステップは、構成マネージャーに入り、各プロジェクトがデバッグとリリースにもx64を使用するように設定することでした。

これはVS2017プロジェクト用でした。

1
MattD

このエラーは、Webプロジェクトを公開しているときにのみ発生しました。パブリッシュプロファイルをセットアップするときに、誤って間違ったビルド構成を選択していました。

1
raterus

このエラーが発生したとき、MSBuildを使用して複数の.slnファイルをビルドしていましたが、.csprojファイルもビルドする新しい手順を追加していました。

@Saurabhの answer は、問題の根本を強調しています。ただし、修正するときに、MSBuildの引数セクションに_/p:Platform=AnyCPU_を追加しても修正されませんでした。実際に、ビルドステップでプラットフォームの値を更新する必要がありました。

他のすべてのビルド手順では、$(BuildPlatform)変数値(たまたまスペースが入った「任意のCPU」)を使用していました。

(複数の.csprojファイルを作成していた場合、AnyCPUプラットフォーム用に2番目の変数を作成していたでしょう。)

Screenshot of Visual Studio Build step

0
Keiki

DebugReleaseの2つのプロジェクト構成がありました。 Releaseビルドを使用すると、このエラーがスローされました。私が見つけた問題は、csprojファイルで、Debugの設定が一番近くにあり、Releaseの設定が一番下にあることでした。

ReleaseビルドをDebugビルドのすぐ下に手動で移動すると修正されました。

ビルド構成をセットアップするときに、手動で調整する必要があるとは思わないので、間違って何かをしたと仮定しています。

0
MM-MikeSauce

OutputPathプロパティがプロジェクトに設定されていませんエラーメッセージは、Platform環境変数が存在し(HPラップトップで発生するようです)、MSBuildのターゲットに別のVisualへの参照が含まれている場合に表示されますスタジオプロジェクト。

Platform環境変数の名前を変更すると、ビルドが機能するようになりました。

パラメーター/p:Platform="Any CPU"はターゲットソリューションに適用されますが、参照プロジェクトには「持ち越し」されないようです。私のインスタンスでは、参照プロジェクトが環境変数Platform=MCDを使用していることを示すエラーメッセージが表示されました。

0
jtc

このエラーは誤解を招くものであり、別の問題が原因である可能性があります。メッセージ全体を確認します。

The OutputPath property is not set for project 'myproject'.  Please check to make sure that you have specified a valid combination of Configuration and Platform for this project.  Configuration='myconfig'  Platform='AnyCPU'.  This error may also appear if some other project is trying to follow a project-to-project reference to this project, this project has been unloaded or is not included in the solution, and the referencing project does not build using the same or an equivalent Configuration or Platform.

私のビルド構成では、csprojにこのノードがありませんでした。

<PlatformTarget>AnyCPU</PlatformTarget>

ドロップダウンでAnyCPUが選択されたプラットフォームであると言っても、実際のxmlはありませんでした。これを追加すると、プロジェクトとそれが参照していた他のプロジェクトとの間の不一致が修正されました。

0
user3063448