asp.net webapi发布 - 不复制xml文件

 徐天凝_669 发布于 2023-01-14 22:56

我有MVC 4.0 WebApi项目,基于此自动生成帮助.

我的模型类在我的解决方案中存储了另一个项目.为每个项目启用xml文件的生成(项目属性 - >构建 - > OutPut - > XML文档文件 - 已启用).

在本地调试中,一切正常 - 将xml文件复制到项目目录,我看到来自其他项目的字段/类的注释.

但是当我使用发布配置文件(到文件夹)时,xml文件不会复制到输出文件夹.仅复制主WebApi项目中的一个xml文件.所以我没有看到其他项目的类的评论.

7 个回答
  • 我有一个类似的问题,对我来说答案有点像"doh!" 时刻.

    在项目设置中,我只在Debug配置下启用了XML文档文件,而不是在Release下.我正在使用Release进行部署,因此实际上并没有生成XML文档.因此,修复程序确保为Debug和Release配置启用XML文档.

    2023-01-14 23:01 回答
  • 你可以通过两种不同的方式做到这一点:

    1)转到项目属性 - >选择构建选项 - >选中"XML文档文件" - >添加路径"App_data\XMLDocument.xml" - >保存设置,构建项目 - >包含XMLDocument. xml文件 - >选择属性 - >复制到输出目录 - >选择"始终复制"

    2)转到项目属性 - >选择"打包/发布Web"选项 - >要显示的项目 - >从下拉列表中选择"此项目中的所有文件"

    2023-01-14 23:02 回答
  • 我能够使用发布配置文件.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>
    

    感谢这个答案,该答案解决了在发布时如何包含项目目录外部的文件.

    2023-01-14 23:02 回答
  • 一种方法是将XML文件添加到项目内的" App_Data "文件夹中,然后在visual studio中,选择一个文件到其属性" Copy to Ouput Directory "到" Always ".在此输入图像描述

    2023-01-14 23:05 回答
  • 作为上一个答案的补充,还有另一种类型的标签,如下文所示:

    https://www.asp.net/mvc/overview/deployment/visual-studio-web-deployment/deploying-extra-files

    标签:

    <CopyAllFilesToSingleFolderForMsdeployDependsOn>
      CustomCollectFiles;
      $(CopyAllFilesToSingleFolderForMsdeployDependsOn);
    </CopyAllFilesToSingleFolderForMsdeployDependsOn>
    

    2023-01-14 23:06 回答
  • 打开您的publishprofile(* .pubxml)并将此代码包含在“ Project”元素中:

    <ItemGroup>
        <Content Include="bin\yourDocumentationFile.xml">
            <CopyToOutputDirectory>true</CopyToOutputDirectory>
        </Content>
        <!-- Include a content to each documentation file -->
    </ItemGroup>
    

    2023-01-14 23:10 回答
  • 我遇到了同样的问题,只部署了webapi项目中的xml文件.

    要修复它,我必须在第一个PropertyGroup元素中将它添加到我的Web(Api)项目文件中.

    <ExcludeXmlAssemblyFiles>false</ExcludeXmlAssemblyFiles>
    

    之后,所有项目(已启用)的文档xml文件发布!

    2023-01-14 23:12 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有