如何排除在ASP.NET Core中发布文件?

时间:2015-12-18 09:38:02

标签: asp.net-core dnx dnu

我注意到当我发布新的ASP.NET项目时,它会将所有非代码文件放在包中的根文件夹中。例如。这些文件最终到达:

  • 发布个人资料
  • gulpfile.js

没有必要在已发布的文件夹中包含这些内容。在旧的解决方案中,它就像修改文件的属性以排除它们一样简单。现在属性完全不同,并打开一个非常无用的对话框,您只能看到文件的路径。或许可以采取其他方式吗?理想情况下,IDE应该足够聪明,不要发布这些常见文件,但对于某些自定义,它应该是一种排除它们的方法。

当然,一些额外的文件发布的问题当然不是很大,但排除它们也是有道理的。

P.S。可能的建议副本是不一样的,因为它只处理旧的项目/解决方案结构,而ASP.NET Core引入了一个新的,其他解决方案不适用。

3 个答案:

答案 0 :(得分:10)

默认情况下,包含project.json的目录中的所有代码文件都包含在项目中。您可以使用project.json的包含/排除部分来控制它。

您将看到包含和排除文件的最常见部分是:

{
  "compile": "*.cs",
  "exclude": [
    "node_modules",
    "bower_components"
  ],
  "publishExclude": [
    "**.xproj",
    "**.user",
    "**.vspscc"
  ]
}
  • 编译部分指定只编译.cs文件。
  • exclude部分排除node_modules中的所有文件 bower_components目录。即使部分有.cs扩展名。
  • publishExclude部分允许您从中排除文件 发布项目的输出。在这个例子中,所有.xproj,.user, 和.vspscc文件来自发布命令的输出。

From here

答案 1 :(得分:0)

假设您正在使用VS发布配置文件:

您可以直接编辑file_get_contents('php://input')文件(它只是XML)来添加元素:

.pubxml

其中每个元素包含一个分号分隔的文件夹或文件名列表(分别)。支持通配符。

答案 2 :(得分:0)

我发现@Shane Neuville上面的评论是准确的。 project.json文件结构已经改变,现在,我们不应该使用“publishExclude”,而应该使用“exclude”...除了我的project.json文件部分现在看起来之外,这里还有document explaining the change的链接像:

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