我有MVC 4.0 WebApi项目,基于此自动生成帮助.
我的模型类在我的解决方案中存储了另一个项目.为每个项目启用xml文件的生成(项目属性 - >构建 - > OutPut - > XML文档文件 - 已启用).
在本地调试中,一切正常 - 将xml文件复制到项目目录,我看到来自其他项目的字段/类的注释.
但是当我使用发布配置文件(到文件夹)时,xml文件不会复制到输出文件夹.仅复制主WebApi项目中的一个xml文件.所以我没有看到其他项目的类的评论.
我有一个类似的问题,对我来说答案有点像"doh!" 时刻.
在项目设置中,我只在Debug配置下启用了XML文档文件,而不是在Release下.我正在使用Release进行部署,因此实际上并没有生成XML文档.因此,修复程序确保为Debug和Release配置启用XML文档.
你可以通过两种不同的方式做到这一点:
1)转到项目属性 - >选择构建选项 - >选中"XML文档文件" - >添加路径"App_data\XMLDocument.xml" - >保存设置,构建项目 - >包含XMLDocument. xml文件 - >选择属性 - >复制到输出目录 - >选择"始终复制"
2)转到项目属性 - >选择"打包/发布Web"选项 - >要显示的项目 - >从下拉列表中选择"此项目中的所有文件"
我能够使用发布配置文件.pubxml文件中的自定义MSBuild目标来解决此问题.请按照以下步骤操作.此MSBuild目标将所有.xml文件从Web API的bin文件夹复制到您要发布的bin文件夹.无需将这些文件复制到App_Data.
1)从[Project Folder]\Properties\PublishProfiles中打开相应的.pubxml文件.
2)在<Project><PropertyGroup>
标签内添加此代码段:
<CopyAllFilesToSingleFolderForPackageDependsOn> CustomCollectFiles; $(CopyAllFilesToSingleFolderForPackageDependsOn); </CopyAllFilesToSingleFolderForPackageDependsOn>
3)在<PropertyGroup>
标签后添加此代码段:
<Target Name="CustomCollectFiles"> <ItemGroup> <_CustomFiles Include="bin\*.xml" /> <FilesForPackagingFromProject Include="%(_CustomFiles.Identity)"> <DestinationRelativePath>bin\%(Filename)%(Extension)</DestinationRelativePath> </FilesForPackagingFromProject> </ItemGroup> </Target>
感谢这个答案,该答案解决了在发布时如何包含项目目录外部的文件.
一种方法是将XML文件添加到项目内的" App_Data "文件夹中,然后在visual studio中,选择一个文件到其属性" Copy to Ouput Directory "到" Always ".
作为上一个答案的补充,还有另一种类型的标签,如下文所示:
https://www.asp.net/mvc/overview/deployment/visual-studio-web-deployment/deploying-extra-files
标签:
<CopyAllFilesToSingleFolderForMsdeployDependsOn> CustomCollectFiles; $(CopyAllFilesToSingleFolderForMsdeployDependsOn); </CopyAllFilesToSingleFolderForMsdeployDependsOn>
打开您的publishprofile(* .pubxml)并将此代码包含在“ Project”元素中:
<ItemGroup> <Content Include="bin\yourDocumentationFile.xml"> <CopyToOutputDirectory>true</CopyToOutputDirectory> </Content> <!-- Include a content to each documentation file --> </ItemGroup>
我遇到了同样的问题,只部署了webapi项目中的xml文件.
要修复它,我必须在第一个PropertyGroup
元素中将它添加到我的Web(Api)项目文件中.
<ExcludeXmlAssemblyFiles>false</ExcludeXmlAssemblyFiles>
之后,所有项目(已启用)的文档xml文件已发布!