如何排除文件在 ASP.NET Core 中发布?
How to exclude files from being published in ASP.NET Core?
我注意到当我发布新的 ASP.NET 项目时,它会将所有非代码文件放在 packages 的根文件夹中。例如。这些文件在那里结束:
- 发布个人资料
- gulpfile.js
没有必要将它们包含在发布的文件夹中。在旧的解决方案中,它就像修改文件的属性以排除它们一样简单。现在属性做一些完全不同的事情并打开一个非常无用的对话框,您只能在其中看到文件的路径。也许有可能做一些其他的方式?理想情况下,IDE 应该足够聪明,不会发布这些常见文件,但对于某些自定义,它应该是一种排除它们的方法。
发布一些额外的文件当然不是什么大问题,但排除它们也是有意义的。
P.S。可能提出的重复是不一样的,因为它只处理旧的 project/solution 结构,而 ASP.NET Core 引入了一个新的结构,其他解决方案不适用。
假设您使用的是 VS 发布配置文件:
您可以直接编辑.pubxml
文件(就是XML)来添加元素:
<ExcludeFoldersFromDeployment>
images;document
</ExcludeFoldersFromDeployment>
<ExcludeFilesFromDeployment>
mystyle.css
</ExcludeFilesFromDeployment>
其中每个元素都包含一个以分号分隔的文件夹或文件名列表(分别)。支持通配符。
默认情况下,包含 project.json 的目录中的所有代码文件都包含在项目中。您可以使用 project.json.
的 include/exclude 部分来控制它
您将看到的包含和排除文件的最常见部分是:
{
"compile": "*.cs",
"exclude": [
"node_modules",
"bower_components"
],
"publishExclude": [
"**.xproj",
"**.user",
"**.vspscc"
]
}
- 编译部分指定仅编译 .cs 文件。
- 排除部分排除了 node_modules 和
bower_components 个目录。即使部分具有 .cs 扩展名。
- publishExclude 部分允许您从
发布项目的输出。在此示例中,所有 .xproj、.user、
和 .vspscc 文件来自发布命令的输出。
我发现@Shane Neuville 上面的评论是准确的。 project.json 文件结构已经改变,现在,我们应该使用 "exclude" 而不是 "publishExclude"...这里还有一个 link 到 document explaining the change我的 project.json 文件部分现在的样子:
{
"publishOptions": {
"include": [
"wwwroot",
"**/*.cshtml",
"appsettings.json",
"appsettings.*.json",
"web.config"
],
"exclude": [
"**/node_modules"
]
}
}
我注意到当我发布新的 ASP.NET 项目时,它会将所有非代码文件放在 packages 的根文件夹中。例如。这些文件在那里结束:
- 发布个人资料
- gulpfile.js
没有必要将它们包含在发布的文件夹中。在旧的解决方案中,它就像修改文件的属性以排除它们一样简单。现在属性做一些完全不同的事情并打开一个非常无用的对话框,您只能在其中看到文件的路径。也许有可能做一些其他的方式?理想情况下,IDE 应该足够聪明,不会发布这些常见文件,但对于某些自定义,它应该是一种排除它们的方法。
发布一些额外的文件当然不是什么大问题,但排除它们也是有意义的。
P.S。可能提出的重复是不一样的,因为它只处理旧的 project/solution 结构,而 ASP.NET Core 引入了一个新的结构,其他解决方案不适用。
假设您使用的是 VS 发布配置文件:
您可以直接编辑.pubxml
文件(就是XML)来添加元素:
<ExcludeFoldersFromDeployment>
images;document
</ExcludeFoldersFromDeployment>
<ExcludeFilesFromDeployment>
mystyle.css
</ExcludeFilesFromDeployment>
其中每个元素都包含一个以分号分隔的文件夹或文件名列表(分别)。支持通配符。
默认情况下,包含 project.json 的目录中的所有代码文件都包含在项目中。您可以使用 project.json.
的 include/exclude 部分来控制它您将看到的包含和排除文件的最常见部分是:
{
"compile": "*.cs",
"exclude": [
"node_modules",
"bower_components"
],
"publishExclude": [
"**.xproj",
"**.user",
"**.vspscc"
]
}
- 编译部分指定仅编译 .cs 文件。
- 排除部分排除了 node_modules 和 bower_components 个目录。即使部分具有 .cs 扩展名。
- publishExclude 部分允许您从 发布项目的输出。在此示例中,所有 .xproj、.user、 和 .vspscc 文件来自发布命令的输出。
我发现@Shane Neuville 上面的评论是准确的。 project.json 文件结构已经改变,现在,我们应该使用 "exclude" 而不是 "publishExclude"...这里还有一个 link 到 document explaining the change我的 project.json 文件部分现在的样子:
{
"publishOptions": {
"include": [
"wwwroot",
"**/*.cshtml",
"appsettings.json",
"appsettings.*.json",
"web.config"
],
"exclude": [
"**/node_modules"
]
}
}