如何在MSBuild项目转换分隔符中包含单引号?

Aar*_*sen 2 msbuild

我需要在项目转换中包含单引号,如下所示:

<DatabaseFileNames>@(DatabaseFiles->'%(PhysicalName)', '','')</DatabaseFileNames>
Run Code Online (Sandbox Code Playgroud)

然而,这会产生一个相当神秘的错误:

错误MSB4095:正在引用项目元数据%(PhysicalName)而没有项目名称.使用%(itemname.PhysicalName)指定项目名称.

我基本上试图创建一个逗号分隔的单引号值列表.

如何将单引号引入转换分隔符?

我尝试使用HTML实体(单引号的实体是'),如下所示:

<DatabaseFileNames>@(DatabaseFiles->'%(PhysicalName)', '&#39;,&#39;')</DatabaseFileNames>
Run Code Online (Sandbox Code Playgroud)

但我得到了同样的错误.

Aar*_*sen 5

看起来你必须使用URL编码样式转义,即%CharacterHexNumber.在这种情况下,单引号是ASCII字符39,它是十六进制的27,所以正确的转义序列是:

<DatabaseFileNames>@(DatabaseFiles->'%(PhysicalName)', '%27,%27')</DatabaseFileNames>
Run Code Online (Sandbox Code Playgroud)