asp.net webapi发布 – xml文件不能复制
我有MVC 4.0 WebApi项目与基于此自动生成的帮助。
我的模型类被存储在我的解决scheme中的另一个项目。 为每个项目启用xml文件生成(项目属性 – >生成 – >输出 – > XML文档文件 – 启用)。
在本地debugging一切正常 – XML文件复制到项目目录,我看到来自另一个项目的字段/类的注释。
但是,当我使用发布configuration文件(到文件夹),xml文件不会复制到输出文件夹。 主WebApi项目中只有一个xml文件被复制。 所以我没有看到来自其他项目的类的评论。
我也有类似的问题,对我来说,答案有点“呃”! 时刻。
在项目设置中,我只在Debugconfiguration下启用了XML文档文件,而不是在Release下。 我使用Release进行部署,因此XML文档实际上并没有生成。 因此,修正是确保为Debug和Releaseconfiguration启用XML文档。
你可以通过两种不同的方式做到这一点:
1)转到你的项目属性 – >select构build选项 – >检查“XML文档文件” – >添加path“App_data \ XMLDocument.xml” – >保存设置,build立你的项目 – >包含你的XMLDocument。 xml文件 – >select属性 – >复制到输出目录 – >select“始终复制”
2)转到你的项目属性 – >select“打包/发布网站”选项 – >要显示的项目 – >从下拉列表中select“该项目中的所有文件”
我能够在发布configuration文件.pubxml文件中使用自定义的MSBuild目标来解决这个问题。 按照下面的步骤。 此MSBuild目标将从Web API的bin文件夹将所有.xml文件复制到您要发布的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 ”select为“ Always ”。
补充以前的答案,还有其他types的标签,如下面的文章:
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>
如果您的站点正在使用发布configuration文件(例如,如果您从ISP下载了一个),则需要确保将以下选项设置为False
<ExcludeApp_Data>False</ExcludeApp_Data>
XML文件的属性可以设置为:构build操作 – 内容,复制到输出目录 – 总是
但是,如果上述参数在发布configuration文件中设置为True,那么您的XML文件将永远不会被发布。 学会了这个艰难的道路。
- 无法加载文件或程序集“WebGrease,Version = 1.5.1.25624,Culture = neutral,PublicKeyToken = 31bf3856ad364e35”或其某个依赖关系
- 所有的ASP.NET Web API控制器都返回404
- 找不到需要POST的简单控制器
- 为什么使用@ Scripts.Render(“〜/ bundles / jquery”)
- 在VS 2012中创buildMVC4项目的NuGet错误
- 在razor页面中检查login用户angular色
- MVC 4数据注释“显示”属性
- DataAnnotation为必需属性
- VS 2012上没有ASP.NET MVC 5 Web应用程序模板?