2017-02-22 68 views
7

我在我的ASP.NET Core MVC应用程序中选择了“Xml documentation file”,它将“bin\Debug\net452\MyProject.xml”显示为输出文件夹。问题是该文件在发布文件夹中不存在。我需要额外的东西来包含它吗?使用.NET Core 1.0-RC4和VS.NET 2017 RC4(新的csproject格式)。XML文档文件不包含在发布文件夹中

回答

3

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

+1

代码被合并到master中。尽管如此,还没有发布:https://github.com/dotnet/sdk/pull/1062 –

4

如果你使用project.json然后您就可以控制都包含和发布过程中排除的文件和文件夹:

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

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

<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> 
+0

对不起忘了补充一点,我使用.NET的核心1.0 RC4和VS.NET 2017 RC4(新的csproject格式,没有project.json)。 – dstr

+0

@dstr更新了我的答案,以包含一些'.csproj'信息,这些信息可能会帮助您指出正确的方向。 – Polynomial

1

project.json file s HOULD有"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> 
+0

很抱歉忘了补充一点,我使用.NET Core 1.0-RC4和VS.NET 2017 RC4(新的csproject格式,没有project.json)。此外,我已经在我的输出文件夹中生成了xml,但它没有发布到发布文件夹。 – dstr

1

测试在1.1.2

ResolvedFileToPublish是发布用途知道哪些文件就摆在发布文件夹中的项目。 Include是文件的来源,而RelativePath是文件应放置在发布文件夹内的位置。 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

相关问题