【问题标题】:VisualStudio ignores last folder in csprojVisualStudio 忽略 csproj 中的最后一个文件夹
【发布时间】:2025-11-23 07:30:02
【问题描述】:
为什么在 $(FileName) 之前的最后一个文件夹,例如显示文件时 Visual Studio 完全忽略“MSBuild 删除的虚拟对象”?
<ItemGroup>
<!-- Protobuf files for ReSharper -->
<Content Include="$(SolutionDir)packages\Google.Protobuf.Tools.*\tools\google\protobuf\**\*.proto">
<Link>google\protobuf\dummy removed by MSBuild\$(FileName)</Link>
</Content>
</ItemGroup>
【问题讨论】:
标签:
visual-studio
msbuild
visual-studio-2017
【解决方案1】:
为什么在 $(FileName) 之前的最后一个文件夹,例如显示文件时,Visual Studio 完全忽略“MSBuild 删除的虚拟对象”?
大胆猜测,你想使用$(FileName) 来获取那些.proto 文件的文件名。
为此,您应该使用%(Content.Filename) 而不是$(FileName),因此代码如下所示:
<ItemGroup>
<Content Include="$(SolutionDir)packages\Google.Protobuf.Tools.*\tools\google\protobuf\**\*.proto">
<Link>google\protobuf\dummy removed by MSBuild\%(Content.Filename)</Link>
</Content>
</ItemGroup>
使用上面的代码,那些.proto 文件会显示在解决方案资源管理器中的dummy removed by MSBuild 文件夹下:
希望这会有所帮助。