MSB3577: 2 つの出力ファイル名が同じ出力パスに解決されました:"path"

このエラーは、ビルド出力に重複するファイル名があることを示しています。

エラーを診断するために詳細情報が必要な場合は、まず診断ログを有効にし (-verbosity:diag コマンド ライン スイッチを使用)、完全な診断出力が含まれる MSBuild ログ ファイルを確認します。 大規模なプロジェクトで出力ログが大きくなる場合は、バイナリ ログ (-bl コマンドライン スイッチ) と MSBuild Structured Log Viewer を使用して出力をより簡単に表示できるようにすることを検討してください。

問題のファイルを確認し、複数回生成されている理由を特定してみてください。どのようなビルド プロセスで生成されているでしょうか? 2 つのファイルのいずれかの名前を変更できますか? ビルド プロセスに重複する手順があるため、同じファイルが複数回生成されていますか?

このエラーは、リソース ファイル (特に Visual Basic Windows フォーム プロジェクト内) で発生します。 プロジェクト ファイルを編集して ManifestResourceName メタデータを指定できます。これは、GenerateResource タスクにより、各リソース ファイルに一意のファイル名を作成する際に役立ちます。 簡単な例を次のコードに示します。

<EmbeddedResource Include="MyResources.resx">
  <ManifestResourceName>CustomName</ManifestResourceName>
</EmbeddedResource>

CustomName に指定する値は、生成されるリソース ファイルごとに異なる値にする必要があります。

MSBuild 16.10 以降では、TargetPath メタデータを使用して、重複するパス名を明確にすることができます。

<Content Include="Files\**">
  <Link>Files\%(Filename)%(Extension)</Link>
  <TargetPath>%(Filename)%(Extension)</TargetPath>
  <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>

拡張子を追加する必要はありません。自動的に .resources という拡張子が適用されます。