0

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

例如
...\2012.01.01\site.css 在资源名称中变为 ..._2012._01._01.site.css

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

是否可以进行方法/API 调用来转义名称?

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

显然,对此有一个hacky修复,但我更喜欢更强大的东西。

有问题的代码是第 3 方,所以我不想使用这里详述的 LogicalName 方法LogicalName Approach

4

1 回答 1

0

资源名称的命名空间就像 .NET 类一样。当site.css变成资源时,它自然会变成...2012.01.01.site.css但那不是有效的资源名称,因为命名空间名称不能以数字开头。所以编译器会在每个命名空间组件之前添加一个下划线。如果您的文件被命名为类似100site.css.

C# 语言规范是标识符规则的一个很好的资源,但我认为您不会发现单个工具行为在 Web 上得到很好的记录。

于 2013-12-17T23:16:34.703 回答