70 votes

ASP.NET Core: Exclure ou inclure des fichiers lors de la publication

Il y avait auparavant aspdotnet1.0 sections à inclure / exclure dans le fichier project.json

 {
  "exclude": [
    "node_modules",
    "bower_components"
  ],
  "publishExclude": [
    "**.xproj",
    "**.user",
    "**.vspscc"
  ]
}
 

Où se trouve cette section dans ASP.NET Core 1.1 (il n'y a pas project.json )? Y at - il des sections similaires sur .csproj fichier ou .pubxml ?

117voto

Set Points 21500

À partir de la documentation: si vous souhaitez spécifier, par exemple, certains fichiers pour être publié avec votre application, vous pouvez toujours utiliser les mécanismes connus en csproj pour que (par exemple, l' <Content> élément).

Il y a un CopyToPublishDirectory d'attribut pour ItemGroup des éléments qui détermine s'il faut copier le fichier à la publication du répertoire et peut avoir une des valeurs suivantes:

  • Toujours,
  • PreserveNewest
  • Jamais

Notez qu'il est également similaire CopyToOutputDirectory d'attribut pour le dossier de sortie.

Exemple (à partir d' ici):

<ItemGroup>

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

Si vous êtes intéressant de voir comment project.json -.csproj migration utiliser CopyToPublishDirectory d'attribut pour migrer les options de publication, vous pouvez rechercher des MigratePublishOptionsRule classe dotnet cli repo.

55voto

Craig Wilson Points 81

Dans .csproj pour les versions 15.3 et supérieures de Visual Studio, les fichiers sont visibles dans Visual Studio (contrairement à "Suppression du contenu") et empêchent la publication des fichiers.

 <ItemGroup>
    <Content Update="appsettings*.json" CopyToPublishDirectory="Never" />
</ItemGroup>
 

34voto

Wagner Pereira Points 287

Après Visual Studio 2017 15.3

Editez le fichier .csproj pour exclure manuellement la publication de fichiers / dossiers

 <ItemGroup>
  <Content Remove="src\**" />
  <Content Remove="node_modules\**" />
</ItemGroup>
 

ref: https://www.danielcrabtree.com/blog/273/fixing-the-duplicate-content-error-after-upgrading-visual-studio-2017

20voto

György Balássy Points 326

Avec Visual Studio 2017 (testé en 15.6.5), vous pouvez cliquer avec le bouton droit sur le fichier dans l' Explorateur de solutions et définir l' action de génération sur Aucune .

Il mettra à jour votre fichier .csproj comme ceci:

 <ItemGroup>
  <Content Remove="appsettings.Development.json" />
  <Content Remove="appsettings.json" />
  <Content Remove="npm-shrinkwrap.json" />
  <Content Remove="package.json" />
  <Content Remove="tsconfig.json" />
</ItemGroup>

<ItemGroup>
  <None Include="appsettings.Development.json" />
  <None Include="appsettings.json" />
  <None Include="npm-shrinkwrap.json" />
  <None Include="package.json" />
  <None Include="tsconfig.json" />
</ItemGroup>
 

J'espère que cela t'aides.

3voto

boomhauer Points 2392

J'ai remarqué que mes dossiers contenant quelques fichiers n'étaient pas publiés. J'ai essayé de cliquer avec le bouton droit de la souris sur les dossiers du projet pour voir si je pouvais sélectionner une option pour inclure le dossier avec le déploiement. Ce n'est pas là, mais j'ai trouvé si Je sélectionne les fichiers dans le dossier et les marquer pour copier sur le déploiement, il copie les fichiers et créer leur dossier dans le processus.

Cela aide si votre dossier contient des fichiers, mais pas si vos dossiers sont vides.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X