平常使用Visual Studio开发.NET项目,总会有用到一些自定义静态资源文件的时候,由于VS默认情况下,项目编译和生成后不会把静态资源文件复制到输出目录,就需要我们自己手动设置静态文件的属性。操作十分简单,本文作为一个知识小结笔记进行记录。
这里使用一个C#控制台应用程序作为演示,随便新建一个ConsoleApp(使用的VS IDE版本是2019),然后在项目下分别添加json、xml、txt、html这四种不同类型的静态资源文件:
接下来生成项目并打开bin文件夹查看,可以看到我们在项目中创建的四个静态资源文件是没有被复制到输出目录里的:
回到VS的解决方案资源管理器视图,全选这几个文件(如有需要也可以一一对应进行设置),然后右键选择属性:
在打开的属性设置视图里,设置复制到输出目录
值为始终复制
:
设置完成后再一次编译和生成项目,就可以看到刚刚设置的四个静态资源文件(json、xml、txt、html)已经被复制到bin文件夹里:
这里需要注意一个地方,我上面的操作并没有设置生成操作
的值,默认是无
,因为我只是用控制台程序来进行简单演示,所以这里没设置也能实现效果。一般情况下,如果是ASP.NET项目,建议将值设置成内容
,利于项目部署,当然这块还得根据自己的业务需求来判断。可以从下拉框中看看到该属性包含了很多值:
关于更多生成操作值
的具体说明,可以查看微软官方文档(Docs/Visual Studio/Windows/IDE/生成/生成操作),贴下部分文档说明和截图:
标记为“内容” 的文件可以通过调用 Application.GetContentStream 作为流进行检索。 对于 ASP.NET 项目,在部署站点时包含这些文件,作为站点的一部分。
本文是一篇简单的小结笔记,起因是前阵子需要开发博客的SSL/TLS证书定时自动更新功能,搭建在一个服务程序里,使用了自定义的JSON配置文件来存储ACME协议相关数据,在项目生成发布后无法读取JSON配置文件,才发现文件根本没有复制到bin文件夹里,后面排查问题才想起没有设置静态文件的复制到输出目录
属性。其实最早的时候就有用到自定义的XML文件来做一些简单数据或者配置存储,也有用过html文件做邮件发送模板,所以有些知识还是要记录下加深印象,不然可能就突然忘记了。
版权声明:本文由十有三创作,采用知识共享许可协议:署名-相同方式共享 4.0 国际(CC BY-SA 4.0)。欢迎转载本文,转载请务必署名-保留作者名称及出处:https://shiyousan.com/post/637207435593814462。