我注意到当我发布新的ASP.NET项目时,它会将所有非代码文件放在包中的根文件夹中。例如。这些文件最终到达:
没有必要在已发布的文件夹中包含这些内容。在旧的解决方案中,它就像修改文件的属性以排除它们一样简单。现在属性完全不同,并打开一个非常无用的对话框,您只能看到文件的路径。或许可以采取其他方式吗?理想情况下,IDE应该足够聪明,不要发布这些常见文件,但对于某些自定义,它应该是一种排除它们的方法。
当然,一些额外的文件发布的问题当然不是很大,但排除它们也是有道理的。
P.S。可能的建议副本是不一样的,因为它只处理旧的项目/解决方案结构,而ASP.NET Core引入了一个新的,其他解决方案不适用。
答案 0 :(得分:10)
默认情况下,包含project.json的目录中的所有代码文件都包含在项目中。您可以使用project.json的包含/排除部分来控制它。
您将看到包含和排除文件的最常见部分是:
{
"compile": "*.cs",
"exclude": [
"node_modules",
"bower_components"
],
"publishExclude": [
"**.xproj",
"**.user",
"**.vspscc"
]
}
答案 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"
]
}
}