MSBuild在嵌入式资源名称中的转义是什么

时间:2013-12-17 23:07:44

标签: c# embedded-resource virtualpathprovider

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

e.g。
... \ 2012.01.01 \ site.css成为资源名称中的... _ 2012._01._01.site.css

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

我是否可以通过方法/ API调用来转义名称?

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

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

有问题的代码是第三方,所以我不想使用此处详述的LogicalName方法LogicalName Approach

1 个答案:

答案 0 :(得分:0)

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

C# language specification是标识符规则的一个很好的资源,但我认为你不会发现个人工具行为在网络上有很好的记录。