2015-12-18 12 views
10

新しいASP.NETプロジェクトを公開すると、非コードファイルがパッケージのルートフォルダに置かれていることに気付きました。例えば。これらのファイルはそこに終わる:ASP.NETコアでファイルを除外する方法は?

  • は、公開フォルダのものを含める本当の必要はありませんプロファイル
  • gulpfile.js

を公開します。古いソリューションでは、ファイルのプロパティを変更して除外するのと同じくらい簡単でした。現在、プロパティは完全に異なるものを実行し、ファイルのパスしか表示されない非常に役に立たないダイアログを開きます。おそらく他のやり方をすることは可能でしょうか?理想的には、IDEはこれらの共通ファイルを公開しないほどスマートであるべきですが、いくつかのカスタムでは、それらを除外する方法でなければなりません。

もちろん、いくつかの追加ファイルが公開されるのはそれほど大きな問題ではありませんが、それらも除外するのが理にかなっています。

P.S.可能な提案された複製は、古いプロジェクト/ソリューション構造のみを扱うため、同じではなく、ASP.NET Coreは新しいソリューションを導入しました。

をあなたは要素を追加する(それだけでXMLで)直接.pubxmlファイルを編集することができます:

各要素はセミコロン区切りのリストが含まれて
<ExcludeFoldersFromDeployment> 
    images;document 
</ExcludeFoldersFromDeployment> 
<ExcludeFilesFromDeployment> 
    mystyle.css 
</ExcludeFilesFromDeployment> 

あなたはVSプロファイルを公開し使用していると仮定すると、

+0

[Visual Studioで公開するWebサイトからのファイルを除外する](http://stackoverflow.com/questions/650875/exclude-files-from-web-site-publish-in-visual-studio) – Richard

+1

これは、ASPの構造である重複ではありません。NET 5のファイルは異なっていて、特にビルドを考慮する場合は、他の適切な方法である可能性があります。提案された複製は、他のタイプのプロジェクト/ソリューション用です。 –

+0

確かにそうではありません。 MVC5とASP.NET5とは非常に異なっています.MSから実際には役に立たないバージョニングです。 – Richard

答えて

10

デフォルトでは、project.jsonを含むディレクトリ内のすべてのコードファイルがプロジェクトに含まれています。これは、project.jsonのinclude/excludeセクションで制御できます。あなたが含むとファイルを除外するために表示されます

最も一般的なセクションは次のとおりです。

{ 
    "compile": "*.cs", 
    "exclude": [ 
    "node_modules", 
    "bower_components" 
    ], 
    "publishExclude": [ 
    "**.xproj", 
    "**.user", 
    "**.vspscc" 
    ] 
} 
  • コンパイルセクションでは、ファイルだけ.csファイルにコンパイルされることを指定します。
  • excludeセクションでは、node_modulesファイルと bower_componentsディレクトリのファイルは除外されます。セクションに.cs拡張子が付いていても。
  • publishExcludeセクションでは、プロジェクトの パブリッシュ出力からファイルを除外できます。この例では、すべての.xproj、.user、 および.vspsccファイルがpublishコマンドの出力から出力されます。

From here

+0

フォルダをどのように除外しますか? 'publishExclude'にフォルダ名を書くのはうまくいかないようです。 –

+2

これは最新のRC2ビットで少し変わったようです。 publishExcludeはもはやオプションではありません https://github.com/aspnet/Announcements/issues/175#include-structure –

+1

RTMバージョンでは、publishOptions> excludeFilesを使用できます – JGeerWM

0

フォルダ名またはファイル名の(それぞれ)。ワイルドカードがサポートされています。

+0

これは新しいASP.NET 5のようにはうまくいきません。 gulpfile.js ですが、ファイルはまだコピーされています。 –

+0

@IlyaChernomordik:それについてのgithubに関する問題を投稿しました。> https://github.com/aspnet/vsweb-publish/issues/73 –

0

私は上記の@Shaneヌーヴィルさんのコメントが正確であることを発見しました。 project.jsonファイル構造が変更され、 "publishExclude"の代わりに "exclude"を使用する必要があります... document explaining the changeへのリンクと、project.jsonファイルセクションの外観を以下に示します:

{ 
    "publishOptions": { 
     "include": [ 
      "wwwroot", 
      "**/*.cshtml", 
      "appsettings.json", 
      "appsettings.*.json", 
      "web.config" 
     ], 
     "exclude": [ 
      "**/node_modules" 
     ] 
    } 
} 
関連する問題