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

如何在MSBuild项转换分隔符中包含单个引号?,msbuild,Msbuild,我需要在项目转换中包含单个报价,如下所示: <DatabaseFileNames>@(DatabaseFiles->'%(PhysicalName)', '','')</DatabaseFileNames> <DatabaseFileNames>@(DatabaseFiles->'%(PhysicalName)', '&#39;,&#39;')</DatabaseFileNames> @(数据库文件->'%(Phys

我需要在项目转换中包含单个报价,如下所示:

<DatabaseFileNames>@(DatabaseFiles->'%(PhysicalName)', '','')</DatabaseFileNames>
<DatabaseFileNames>@(DatabaseFiles->'%(PhysicalName)', '&#39;,&#39;')</DatabaseFileNames>
@(数据库文件->'%(PhysicalName)、、”
然而,这引出了一个相当隐晦的错误:

错误MSB4095:项元数据无效 %(PhysicalName)正在被引用 没有项目名称。指定 通过使用 %(itemname.PhysicalName)

我基本上是想创建一个逗号分隔的单引号值列表

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

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

<DatabaseFileNames>@(DatabaseFiles->'%(PhysicalName)', '','')</DatabaseFileNames>
<DatabaseFileNames>@(DatabaseFiles->'%(PhysicalName)', '&#39;,&#39;')</DatabaseFileNames>
@(数据库文件->'%(物理名称)',';,';)

但是我得到了相同的错误。

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

<DatabaseFileNames>@(DatabaseFiles->'%(PhysicalName)', '%27,%27')</DatabaseFileNames>
@(数据库文件->'%(物理名称)',%27,%27')