XML文档文件不包含在发布文件夹中

时间:2017-02-22 07:26:33

标签: asp.net-core asp.net-core-mvc visual-studio-2017

我已选择" Xml documentation file"在我的ASP.NET核心MVC应用程序中,它显示" bin\Debug\net452\MyProject.xml"作为输出文件夹。问题是该文件不存在于发布文件夹中。我需要额外添加它吗?使用.NET Core 1.0-RC4和VS.NET 2017 RC4(新的csproject格式)。

5 个答案:

答案 0 :(得分:4)

如果您正在使用project.json,那么您可以控制发布过程包含和排除的文件和文件夹:

  "publishOptions": {
    "include": [
      "wwwroot",
      "appsettings.json",
      "appsettings.*.json",
      "web.config"
    ],
    "exclude": [
      "wwwroot/less"
    ]
  }

对于基于.csproj的项目here is a good resource,用于复制XML中的旧project.json设置,例如:

<ItemGroup>
  <Compile Include="..\Shared\*.cs" Exclude="..\Shared\Not\*.cs" />
  <EmbeddedResource Include="..\Shared\*.resx" />
  <Content Include="Views\**\*" PackagePath="%(Identity)" />
  <None Include="some/path/in/project.txt" Pack="true" PackagePath="in/package.txt" />

  <None Include="notes.txt" CopyToOutputDirectory="Always" />
  <!-- CopyToOutputDirectory = { Always, PreserveNewest, Never } -->

  <Content Include="files\**\*" CopyToPublishDirectory="PreserveNewest" />
  <None Include="publishnotes.txt" CopyToPublishDirectory="Always" />
  <!-- CopyToPublishDirectory = { Always, PreserveNewest, Never } -->
</ItemGroup>

答案 1 :(得分:3)

显然,这不是通过dotnet发布实现的,但将在不久的将来实施:https://github.com/dotnet/sdk/issues/795

答案 2 :(得分:1)

project.json文件的"xmlDoc": true下应该有"buildOptions"

{
    "buildOptions": {
        "xmlDoc": true
    }
}

如果您的代码中包含以下文档:

/// <summary>
/// Documentation for FooClass
/// </summary>
public static class FooClass
{
    // ...
}

然后,您的输出中应该有一个xml文件,如下所示:

<doc>
    <assembly>
        <name>Foo.Bar</name>
    </assembly>
    <members>
        <member name="T:Foo.Bar.FooClass">
            <summary>
            Documentation for FooClass
            </summary>
        </member>
    </members>
</doc>

答案 3 :(得分:1)

1.1.2

上进行测试

ResolvedFileToPublish是发布用于了解要放入发布文件夹的文件的项目。 Include是文件的来源,RelativePath是应该放置文件的发布文件夹中的位置。 ComputeFilesToPublis h正如其名称所暗示的那样 - 目标是收集要发布的所有文件。

<Target Name="CopyDocumentationFile"
AfterTargets="ComputeFilesToPublish">
    <ItemGroup>
    <ResolvedFileToPublish Include="@(FinalDocFile)"
                     RelativePath="@(FinalDocFile->'%(Filename)%(Extension)')" />
    </ItemGroup>
</Target>

只需将此目标添加到.csproj并确保即可 GenerateDocumentationFile设置为true

<GenerateDocumentationFile>true</GenerateDocumentationFile>

https://github.com/dotnet/sdk/issues/795#issuecomment-289782712

答案 4 :(得分:0)

在Asp.net Core中,如果您在设置DocumentationFile时遇到问题,我们可以通过在.csproj中设置GenerateDocumentationFile属性来实现:

<PropertyGroup>
  <GenerateDocumentationFile>true</GenerateDocumentationFile>
</PropertyGroup>