asp.net-core - 如何将 XML 文件从 NuGet 包发布到 ASP.NET Core 2.1 应用程序
问题描述
MyWebApiApp
我有一个引用 NuGet 包(例如)的 ASP.NET Core 2.1 应用程序(例如MyPackage
),其中包含 Web API 中使用的模型。这些模型使用 XML 注释进行记录,生成的 XML 文件与 NuGet 包一起发布(在 中lib\netstandard2.0\MyPackage.xml
)。
我想在 Swagger 中使用 XML 文档,所以我SwaggerGenOptions
在 Startup.cs 中添加了以下内容:
c.IncludeXmlComments(Path.ChangeExtension(typeof(MyPackage.MyModel).Assembly.Location, ".xml"));
到现在为止还挺好。当我从 Visual Studio 2017 运行应用程序时,它成功地在 NuGet 包缓存中找到 XML 文档文件并生成 Swagger 文档。
现在我想发布网站。当我发布网站时:
- 应用程序 ( ) 的 XML 文档文件
MyWebApiApp.xml
被复制到发布文件夹(我已包含<GenerateDocumentationFile>true</GenerateDocumentationFile>
在 中MyWebApiApp.csproj
)。 - 但是我的 NuGet 包 ( ) 中的 XML 文档文件
MyPackage.xml
没有被复制。
我尝试将这篇博文中的咒语添加到MyWebApiApp.csproj
,但没有成功。
解决方案
我在这里找到了解决方案。
需要将以下咒语添加到 pubxml 文件中:
<Target Name="_ResolvePublishNuGetPackagePdbsAndXml"
AfterTargets="RunResolvePublishAssemblies">
<ItemGroup>
<ResolvedFileToPublish
Include="@(ResolvedAssembliesToPublish->'%(RootDir)%(Directory)%(Filename).pdb')"
RelativePath="$([System.IO.Path]::ChangeExtension(%(ResolvedAssembliesToPublish.DestinationSubPath), '.pdb'))"
DestinationSubPath="$([System.IO.Path]::ChangeExtension(%(ResolvedAssembliesToPublish.DestinationSubPath), '.pdb'))"
Condition="'%(ResolvedAssembliesToPublish.PackageName)' != ''
and Exists('%(RootDir)%(Directory)%(Filename).pdb')" />
<ResolvedFileToPublish
Include="@(ResolvedAssembliesToPublish->'%(RootDir)%(Directory)%(Filename).xml')"
RelativePath="$([System.IO.Path]::ChangeExtension(%(ResolvedAssembliesToPublish.DestinationSubPath), '.xml'))"
DestinationSubPath="$([System.IO.Path]::ChangeExtension(%(ResolvedAssembliesToPublish.DestinationSubPath), '.xml'))"
Condition="'%(ResolvedAssembliesToPublish.PackageName)' != ''
and Exists('%(RootDir)%(Directory)%(Filename).xml')" />
</ItemGroup>
</Target>
推荐阅读
- sql - 如何提高这个 SQL 的速度?
- python - 使用 pandas 将相关列重新定位到表的末尾
- vue.js - 如何将道具传递给vue中的子组件
- r - 是否有用于制作适合报告的描述性表格的 R 包和功能?
- reactjs - 反应原生 | ReferenceError: defaultStyles 未定义
- azure - Ansible 循环使用图形 api 在 Azure AD 组中添加成员
- flutter - 如何在 VS Code 中调试颤振 build_runner 构建?
- python - Python 3 子进程崩溃
- python - 在拟合期间重复预测时内存不足
- java - 切换 Firestore 查询