2017-02-22 17 views
7

Wybrałem "Xml documentation file" w mojej aplikacji ASP.NET Core MVC i wyświetla "bin\Debug\net452\MyProject.xml" jako folder wyjściowy. Problem polega na tym, że ten plik nie istnieje w folderze publikowania. Czy muszę coś jeszcze dodać, aby go dołączyć? Korzystanie z .NET Core 1.0-RC4 i VS.NET 2017 RC4 (nowy format csproject).Plik dokumentacji XML nie znajduje się w folderze publikacji

Odpowiedz

3

Najwyraźniej nie jest to zaimplementowane w publikacji dotnet, ale będzie w niedalekiej przyszłości: https://github.com/dotnet/sdk/issues/795

+1

Kod został scalony do wzorca. Nie wydaje się jednak jeszcze: https://github.com/dotnet/sdk/pull/1062 –

4

Jeśli używasz project.json wtedy można kontrolować pliki i foldery, które są zawarte i wykluczone zarówno w procesie rozpatrzenie:

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

Dla .csproj projektów opartych here is a good resource do replikacji starych project.json ustawienia XML, na przykład:

<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

Niestety zapomniał dodać, że używam .NET Rdzeń 1,0-RC4 i VS.NET 2017 RC4 (nowy format csproject, bez project.json). – dstr

+0

@dstr Zaktualizowałem moją odpowiedź, aby dołączyć pewne informacje ".csproj", które mogą pomóc ci we właściwym kierunku. – Polynomial

1

Plik s project.json s hould mają "xmlDoc": true pod "buildOptions":

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

Jeśli masz dokumentację w kodzie tak:

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

Następnie powinieneś mieć plik xml w swoim wyjściu, który wygląda tak:

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

Niestety zapomniałem dodać, że używam .NET Core 1.0-RC4 i VS.NET 2017 RC4 (nowy format csproject, bez project.json). Również mam już xml wygenerowany w moim folderze wyjściowym, ale nie jest opublikowany w folderze publikowania. – dstr

1

Testowane na 1.1.2

ResolvedFileToPublish jest element, który publikowania zastosowań wiedzieć które pliki umieścić w folderze publikowania. Źródłem pliku jest Include, a plik RelativePath znajduje się w folderze publikowania, w którym należy umieścić plik. ComputeFilesToPublis h jest dokładnie taka sama jak wskazuje jego nazwa - to Cel zbiera wszystkie pliki, które mają zostać opublikowane.

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

Wystarczy dodać ten cel do .csproj i upewnij się, że GenerateDocumentationFile jest ustawiony na true

<GenerateDocumentationFile>true</GenerateDocumentationFile>

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

Powiązane problemy