本文来和大家聊聊在 dotnet 5 和 dotnet 6 或更高版本的 dotnet 构建完成,在 bin 文件夹下,输出的 ref 文件夹。...在此文件夹里面,将会包含项目程序集同名的 dll 文件,但是此 dll 文件的大小却很小,那这个文件夹是用来做什么的 在使用 dotnet 5 或更高版本的 dotnet 的项目时,将会发现在项目的输出路径...,将多了一个叫 ref 的文件夹,大概路径如下 bin\Release\net6.0-windows\ref\ 此文件夹里面只包含了项目程序集同名的 dll 文件。...而且此文件夹的删除不会影响到项目的执行 放在 ref 这里的程序集其实叫仅引用程序集,从 官方文档 Reference assemblies Microsoft Docs 可以看到,这里的程序集 dll...这就是 ref 文件夹的重要功能,用来提升开发速度,减少重新构建 那如果自己的项目本来就是不考虑被其他项目所引用的,或者说不想再加一个 ref 文件夹,可以在 csproj 上添加如下代码,添加下面代码
有时候我们做的web网站需要有一个保存上传文件的文件夹;但是项目每次部署的时候都小心翼翼的害怕将上传目录给覆盖掉。...所以我们就可以使用linux 的软连接,将真实的上传目录保存在一个安全的地方,然后在项目下建立一个upload的软连接指向这个目录。每次就算要覆盖项目更新,也不会将已经上传过的文件覆盖掉。
Bin目录用来保存项目生成后程序集,它有Debug和Release两个版本,分别对应的文件夹为bin/Debug和bin/Release,这个文件夹是默认的输出路径,我们可以通过:项目属性—>配置属性—...是否采用增量编译,可以通过:项目属性—>配置属性—>高级—>增量编译来设置 obj和bin文件什么区别和联系 1.bin bin目录用来保存项目生成后程序集,它有Debug和Release两个版本...,分别对应的文件夹为bin/Debug和bin/Release,这个文件夹是默认的输出路径,我们可以通过:项目属性—>配置属性—>输出路径来修改。...如果设置复制到本地为true,在生成项目时会自动拷贝该DLL到项目生成文件夹中(bin目录),否则不会拷贝。在生成项目时,对所添加的引用的是绝对路径,而在运行时程序集默认只在当前所在的路径下去找。...都可以删掉, 重新编译又生成了 Properties文件夹 定义你程序集的属性 项目属性文件夹 一般只有一个 AssemblyInfo.cs 类文件,用于保存程序集的信息,如名称,版本等,这些信息一般与项目属性面板中的数据对应
原因 我碰到原因就是SCT加载文件的问题,我定义了不少段,所以导致bin文件变成了文件夹 一般的Bin生成方法:在USER里面Run#1加上K\ARM\ARMCC\bin\fromelf.exe...--bin -o " 解决方法 Keil里面的fromelf帮助,可以去看看 bincombined_base与你自己的起始地址有关,K\ARM\ARMCC\bin\fromelf.exe --
本文章主要说明asp.net core中静态资源处理方案: 一、静态文件服务 首先明确contentRoot和webroot这两个概念 contentRoot:web的项目文件夹,其中包含webroot...和其他bin等其他文件夹 webroot:webroot是站点文件夹,可用url访问的文件夹。...WebHost.CreateDefaultBuilder(args) .UseStartup() .UseKestrel() .UseContentRoot(Directory.GetCurrentDirectory...app.UseStaticFiles(new StaticFileOptions(){ FileProvider = new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory...app.UseStaticFiles(new StaticFileOptions(){ FileProvider = new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory
例如,web application 项目模板在wwwroot文件夹下包含几个文件夹: wwwroot css images js 到images子目录中的文件的URI格式为:http://<server_address...images/banner1.svg: 在上面的代码中,~/ 指向...像上面的代码,要使用web root下的文件,需要直接指向到web root下的具体的文件。...第一个调用允许wwwroot文件夹提供静态文件。...使用UseDefaultFiles,请求一个文件夹搜索: default.htm default.html index.htm index.html 列表中第一个被找到的文件会提供服务,好像请求是被详细修饰一样
Directory.GetCurrentDirectory = C:\00WORKSPACE\basedir\basedir\bin\Debug\net6.0 编译完成后双击 exe 文件,可以看到获取到的目录是正确的...>basedir.exe Directory.GetCurrentDirectory = C:\00WORKSPACE\basedir\basedir\bin\Debug\net6.0 我们把路径切换到...C:\>cd apps C:\APPS>C:\00WORKSPACE\basedir\basedir\bin\Debug\net6.0\basedir.exe Directory.GetCurrentDirectory...使用 cmd 运行 同样让我们在 cmd 下运行一下: C:\00WORKSPACE\basedir\basedir\bin\Debug\net6.0>basedir.exe Directory.GetCurrentDirectory...C:\>cd APPS C:\APPS>C:\00WORKSPACE\basedir\basedir\bin\Debug\net6.0\basedir.exe Directory.GetCurrentDirectory
有\的意义表示bin文件夹里的所有文件和文件夹;反之,bin文件夹里的所有文件和与bin同节的文件 一般都是使用Directory.GetCurrentDirectory()进行设置根目录,这里尝试了添加文件配置的时候四种方式都是可以的...可以看到输出值变成了newKey1,不再是==key1 == ? 3.5 环境变量 项目中添加环境变量 ?...(); } }).Build().Run(); } 通过ServiceProvider获取容器中的服务时会自动调用构造,具体服务之间的构造先后顺序以及涉及到的生命周期我这里就不再展开了...\Debug文件夹下的配置文件进行测试,测试的过程中发现只要触发了文件的保存操作都会触发OnChange()方法,无论内容是否变化,不知这里是一个什么原因???...注意,由于我这里测试使用的是控制台应用程序,需要修改bin\Debug文件下面的配置文件才能生效,但是使用asp.net core就不用,直接修改项目中的配置文件就可以。 ?
静态文件通常位于网站根目录(web root) /wwwroot文件夹下。...IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilder(args) .UseContentRoot(Directory.GetCurrentDirectory...()) //设置当前目录 .UseStartup();静态文件能够被保存在网站根目录下的任意文件夹内,并通过相对根的路径来访问。...使用vs创建一个默认的Web应用程序时,在wwwroot目录下会生成几个文件夹:css,images,js。...同时可以通过UseStaticFiles方法将其他目录下的内容也可以向外提供:假如wwwroot外面有一个MyStaticFiles文件夹,要访问文件夹里面的资源test.png: public void
从日志中的“Content root path: /”可以看到,把/文件夹作为了站点的根目录了,解决方法:打开Program.cs文件,添加using System.Reflection;,之后注释掉原来的....UseContentRoot(Directory.GetCurrentDirectory()),添加新的.UseContentRoot(Path.GetDirectoryName(Assembly.GetEntryAssembly...问题就在这里(此处应有柯南): 安装的时候,dotnet的环境变量添加在/usr/local/bin里,而守护进程的服务设置的却是/usr/bin/dotnet,能好用才见鬼,把守护进程中的/usr/bin.../dotnet换成/usr/local/bin/dotnet就好了,我也在本系列中的第一篇文章《.Net Core系列教程(一)——环境搭建》中提到过。...而报错文件全都指向.net core的C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\DotNet\Microsoft.DotNet.Common.Targets
Core 6框架揭秘》第15章] 目录 一、Minimal API 二、推荐编程方式 三、承载环境 四、承载配置 五、应用配置 六、服务注册 七、中间件注册 八、Startup类型不再被支持...从编程的角度来说,Minimal API不再刻意地区分承载配置和应用配置,因为针对它们的设置都由这个ConfigurationManager对象来完成。...(), "resources"), WebRootPath = Path.Combine(Directory.GetCurrentDirectory(), "resources", "web")...启动改写后的程序会抛出如下的NotSupportedException异常,并提示定义在WebApplicationBuilder的WenHost返回的ConfugureWebHostBuilder对象的Configure方法不再被支持...八、Startup类型不再被支持 在Minimal API之前,将服务注册、中间件注册以及针对依赖注入容器的设置放在Startup类型中是一种被推荐的做法,但是这种编程方法在Minimal API中也不再被支持
添加静态文件服务 静态文件通常位于 Web root(/wwwroot)文件夹下 为了能够启用静态文件服务,必须配置中间件,把静态中间件添加到管道内.静态文件中间件在...app.UseStaticFiles(new StaticFileOptions{ FileProvider = new new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory...new DirectoryBrowserOptions { FileProvider = new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory...app.UseFileServer(new FileServerOptions { FileProvider = new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory
Key/Value 支持按文件夹分类,当我们的 Key 以 / 结尾的时候,consul 会认为这是一个文件夹。 我们在这里输入 “member_center/” 在创建文件夹。 ?...在创建的文件夹目录下继续点击 “create” 按钮。 ? 在 key 文本框里输入 “confing.json” 。...{ new WebHostBuilder() .UseKestrel() .UseContentRoot(Directory.GetCurrentDirectory...var localconfig = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory...演示了 Ocelot 网关的路由配置如何迁移到 Consul 的 Key/Value 对象上并且不再写死下游服务的配置信息,而是使用 Consul 的服务发现能力动态获取下游服务的配置信息。
()); varpath = Path.Combine(Directory.GetCurrentDirectory(), "Theme.json"); config.AddJsonFile...var pathIni = Path.Combine(Directory.GetCurrentDirectory(), "Theme.ini"); config.AddIniFile(pathIni,...同理,对于XML格式的文件,有一个对应的AddXmlFile方法,其他环节和JSON、INI文件的应用也是一样的,此处就不再举例描述。...例如现在有个文件夹s,其下面有1.txt和2.txt两个文件,文件内容分别是s1和s2,如下图1 ?...:{_configuration["1.txt"]}, 2.txt:{_configuration["2.txt"]}"}; } 返回结果为: 1.txt:s1,2.txt:s2 可见这样的方法是将s文件夹下的两个文件的文件名作为了
1、获得当前运行程序的路径 string rootPath = Directory.GetCurrentDirectory(); 2、获得该文件夹下的文件,返回类型为FileInfo string...:\XXX\XX"; DirectoryInfo root = new DirectoryInfo(path); FileInfo[] files=root.GetFiles(); 3、获得该文件夹下的子目录..."; DirectoryInfo root = new DirectoryInfo(path); DirctoryInfo[] dics=root.GetDirectories(); 4、获得文件夹名...FileInfo f in root.GetFiles()) { string name=f.Name; string fullName=f.FullName; } #只获取目录下一级的文件夹与文件...void Main(string[] args) 2 { 3 //获取当前程序所在的文件路径 4 String rootPath = Directory.GetCurrentDirectory
()); varpath = Path.Combine(Directory.GetCurrentDirectory(), "Theme.json"); config.AddJsonFile...var pathIni = Path.Combine(Directory.GetCurrentDirectory(), "Theme.ini"); config.AddIniFile(pathIni,...同理,对于XML格式的文件,有一个对应的AddXmlFile方法,其他环节和JSON、INI文件的应用也是一样的,此处就不再举例描述。...例如现在有个文件夹s,其下面有1.txt和2.txt两个文件,文件内容分别是s1和s2,如下图1 ?...configuration["1.txt"]}, 2.txt:{_configuration["2.txt"]}"}; } 返回结果为: 1.txt:s1,2.txt:s2 可见这样的方法是将s文件夹下的两个文件的文件名作为了
多了一个wwwroot文件夹,少了很多其他的资源文件夹.如图: ? 我们点进去,就可以看到,微软的模版,已经把所有的资源文件全放到了这里面,如图: ?...我们在项目中创建文件夹如下: ?...{ FileProvider = new PhysicalFileProvider( Path.Combine(Directory.GetCurrentDirectory...{ FileProvider = new PhysicalFileProvider( Path.Combine(Directory.GetCurrentDirectory...{ FileProvider = new PhysicalFileProvider( Path.Combine(Directory.GetCurrentDirectory
http://*:7777;http://*:7778")//指定程序集会使用Kestrel服务器 .UseKestrel() //指定 Directory.GetCurrentDirectory...作为内容根 .UseContentRoot(Directory.GetCurrentDirectory()) //指定应用程序需要使用...默认的内容根是应用程序运行的文件夹 注意:指定Directory.GetCurrentDirectory作为内容根时,当应用程序启动时会使用Web项目的根目录作为应用程序的内容根(比如,从Web项目文件夹调用...Visual Studio 和dotnet new 的模板时默认使用Directory.GetCurrentDirectory作为内容根的。
本文主要通过解读一下ASP.NET Core对于静态文件的处理方式的相关源码,来看一下为什么是wwwroot文件夹,如何修改或新增一个静态文件夹,为什么新增的文件夹名字不会被当做controller处理...一、静态文件夹 所谓静态文件,直观的说就是wwwroot目录下的一些直接提供给访问者的文件,例如css,图片、js文件等。...FileServerOptions { FileProvider = new PhysicalFileProvider( Path.Combine(Directory.GetCurrentDirectory..."{name}")] public FileResult Get(string name) { var file = Path.Combine(Directory.GetCurrentDirectory...isAllow) { var file = Path.Combine(Directory.GetCurrentDirectory(
本文记录违规地采用 IShellLinkW 创建 URL 网址超链接快捷方式的方法 开始之前,必须说明的是,在微软文档上明确说明不能用来创建指向 URL 的快捷方式 This interface cannot...} 尝试创建快捷方式,代码如下 var shortcutFile = Path.Join(AppContext.BaseDirectory, "1.lnk"); // 尽管文档上明确说明不能用来创建指向...ShortcutHelper.CreateShortcut(shortcutFile, "https://blog.lindexi.com/", Directory.GetCurrentDirectory...我整个代码仓库比较庞大,使用以下命令行可以进行部分拉取,拉取速度比较快 先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹,在命令行里面输入以下代码,即可获取到本文的代码 git init git...git pull origin 8dc0e09a60e1bf0e5a6d88ab63bfeb64da7b3dde 获取代码之后,进入 Workbench/BecearyernaDurfodejefela 文件夹