C# 嵌入资源名称中的MSBuild转义是什么

C# 嵌入资源名称中的MSBuild转义是什么,c#,embedded-resource,virtualpathprovider,C#,Embedded Resource,Virtualpathprovider,我注意到MSBuild在生成资源名称时会转义以数字开头的文件夹 e、 g. …\2012.01.01\site.css在资源名称中变为…\u 2012.\u 01.\u 01.site.css 是否有关于MSBuild用于确定资源名称的规则的文档 是否有方法/API调用可以转义名称 它正在破坏我的VirtualPathProvider,因为我字典中的键在检索时与路径不匹配 显然,这是一个黑客修复,但我更喜欢更强大的东西 所讨论的代码是第三方的,因此我不希望使用此处详述的LogicalName方法

我注意到MSBuild在生成资源名称时会转义以数字开头的文件夹

e、 g.
…\2012.01.01\site.css在资源名称中变为…\u 2012.\u 01.\u 01.site.css

是否有关于MSBuild用于确定资源名称的规则的文档

是否有方法/API调用可以转义名称

它正在破坏我的VirtualPathProvider,因为我字典中的键在检索时与路径不匹配

显然,这是一个黑客修复,但我更喜欢更强大的东西


所讨论的代码是第三方的,因此我不希望使用此处详述的LogicalName方法

资源名称与.NET类一样具有名称空间。当
site.css
变成资源时,它自然会变成
…2012.01.01.site.css
,但这不是有效的资源名称,因为命名空间名称不能以数字开头。因此,编译器会在每个名称空间组件之前添加下划线。如果您的文件名类似于
100site.css
,您可能会在文件名上看到相同的内容

对于标识符规则来说,是一个很好的资源,但是我不认为您会发现个别工具行为在web上有很好的文档记录