MSB3577:两个输出文件名解析为同一个输出路径:“路径”
此错误表示生成输出中存在重复文件名。
如果需要更多信息来诊断错误,首先启用诊断日志(使用 -verbosity:diag
命令行开关),然后使用完整的诊断输出检查 MSBuild 日志文件。 对于大型项目的更大输出日志,请考虑使用二进制日志(-bl
命令行开关)和 MSBuild 结构化日志查看器来更轻松地查看输出。
检查有问题的文件并试着确定多次生成该文件的原因 - 创建该文件的生成过程是怎样的? 你可以重命名这两个文件中的一个吗? 是否因为生成过程中存在重复步骤而多次生成相同的文件?
此错误发生在资源文件中,尤其是在 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
会自动应用。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈