0

リソース名を生成するときに、MSBuild が数字で始まるフォルダーをエスケープしていることに気付きました

例:
...\2012.01.01\site.css は、リソース名で ..._2012._01._01.site.css になります。

リソース名を決定するために MSBuild が使用する規則に関するドキュメントはありますか?

名前をエスケープするために実行できるメソッド/API 呼び出しはありますか?

取得時に辞書のキーがパスと一致しないため、VirtualPathProvider が壊れています。

明らかに、これにはハッキーな修正がありますが、より堅牢なものが望ましいです。

問題のコードはサードパーティであるため、ここで説明されている 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 に答える