web-dev-qa-db-ja.com

ASP.NET Core:公開時にファイルを除外または含める

aspdotnet1.0以前にproject.jsonファイルのセクションを含める/除外するセクションがありました

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

ASP.NET Core 1.1のこのセクションはどこにありますか(project.jsonはありません)? .csprojファイルまたは.pubxmlに同様のセクションがありますか?

43
hcp

ドキュメント から:たとえば、アプリで公開するファイルを指定する場合、csprojの既知のメカニズムを使用できます(たとえば、<Content>要素)。

CopyToPublishDirectoryelements にはItemGroup属性があり、ファイルをパブリッシュディレクトリにコピーするかどうかを決定し、次のいずれかの値を持つことができます。

  • 常に、
  • 保存する
  • 決して

出力フォルダーにも同様のCopyToOutputDirectory属性があることに注意してください。

例(from here ):

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

project.json -.csproj移行がCopyToPublishDirectory属性を使用して公開オプションを移行する方法に興味がある場合は、 MigratePublishOptionsRule dotnet cli repoのクラスを調べることができます。

72
Set

Visual Studio 2017 15.3以降

.csprojファイルを編集して、ファイル/フォルダーの公開を手動で除外します

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

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

21
Wagner Pereira

Visual Studioバージョン15.3以降の.csprojでは、これによりVisual Studioでファイルが表示されたままになり(「コンテンツの削除」は表示されません)、ファイルが公開されなくなります。

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

Visual Studio 2017(15.6.5でテスト済み)を使用すると、ソリューションエクスプローラーでファイルを右クリックして、ビルドアクションを設定できますto なし

次のように.csprojファイルを更新します。

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

お役に立てれば。

9

いくつかのファイルを含むフォルダーが公開されていないことに気付きました-プロジェクト内のフォルダーを右クリックして、展開にフォルダーを含めるオプションを選択できるかどうかを確認しました-そこにありませんが、フォルダー内のファイルを選択し、展開時にコピーするようにマークすると、ファイルがコピーされますおよびプロセスでフォルダーを作成します。

これは、フォルダーにファイルがある場合は役立ちますが、フォルダーが空の場合は役に立ちません。

4
Brady Moritz

。csprojファイルを編集して、ファイル/フォルダーを公開から手動で除外します。

this を参照することもできます

Web展開については、 https://blogs.msdn.Microsoft.com/webdev/2010/04/22/web-deployment-exexcept-files-and-folders-via-the-web-applications-project-を参照してくださいfile /

project.jsoncsprojに置き換えられました。詳しくは https://www.stevejgordon.co.uk/project-json-replaced-by-csproj をご覧ください。

既存の.NET Core 1.0プロジェクトをアップグレードする場合、または.NET Core 1.1を使用する場合は、 https://blogs.msdn.Microsoft.com/dotnet/2016/11/16/announcing-net-core-1 -1 /

1