为什么属性值在用作属性值而不是 msbuild 中的项目值时有效?
我正在尝试使用 Sandcastle Help File Builder 为我的应用程序构建文档。 一项要求是我必须指定文档源,例如:
<DocumentationSources>
<DocumentationSource sourceFile="@(DocumentationSourceFiles)" xmlns="" />
</DocumentationSources>
我已在单独的文件中定义了 @(DocumentationSourceFiles),如下所示:
<ItemGroup>
<DocumentationSourceFiles Include="..\src\**\*.exe"></DocumentationSourceFiles>
</ItemGroup>
然后我将此文件导入到 .shfbproj 文件中并按上述方式使用它。 问题在于 @(DocumentationSourceFiles) 未被识别为项目列表,而仅被识别为字符串。 我做错了什么吗? 如果我要将 @(DocumentationSourceFiles) 更改为具有单个值的属性,例如:
<PropertyGroup>
<DocumentationSourceFiles>S:\SVN\myApp\src\myAppName\Debug\bin\myApp</DocumentationSourceFiles>
</PropertyGroup>
然后使用:
<DocumentationSources>
<DocumentationSource sourceFile="$(DocumentationSourceFiles)" xmlns="" />
</DocumentationSources>
一切正常。 有任何想法吗?
I am trying to build the documentation for my application using Sandcastle Help File Builder. One requirement is that I must specify the documentation source for e.g.:
<DocumentationSources>
<DocumentationSource sourceFile="@(DocumentationSourceFiles)" xmlns="" />
</DocumentationSources>
I have defined @(DocumentationSourceFiles) in a separate file as follows:
<ItemGroup>
<DocumentationSourceFiles Include="..\src\**\*.exe"></DocumentationSourceFiles>
</ItemGroup>
I then imported this file in the .shfbproj file and used it as stated above. The problem is that @(DocumentationSourceFiles) is not being recognized as a list of items but merely as a string. Am I doing anything wrong? If I were to change @(DocumentationSourceFiles) into a property with a single value like:
<PropertyGroup>
<DocumentationSourceFiles>S:\SVN\myApp\src\myAppName\Debug\bin\myApp</DocumentationSourceFiles>
</PropertyGroup>
And then use:
<DocumentationSources>
<DocumentationSource sourceFile="$(DocumentationSourceFiles)" xmlns="" />
</DocumentationSources>
Everything works fine. Any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您想单独拥有每个项目,请使用元数据表示法:%(ItemCollectionName.ItemMetaDataName)
If you want to have each item separately, use the metadata notation : %(ItemCollectionName.ItemMetaDataName)