首页 > 编程语言 >如何在 C# 项目中链接一个文件夹下的所有文件

如何在 C# 项目中链接一个文件夹下的所有文件

时间:2023-03-13 19:56:19浏览次数:55  
标签:文件 项目 C# 所有 我们 文件夹 引入 链接

如何在 C# 项目中链接一个文件夹下的所有文件

 

在 C# 项目中通过链接方式引入文件可以让我们在项目中使用这些文件中的代码。常见的比如链接 AssemblyInfo.cs 文件,这样我们就可以在项目中使用这个文件中的版本号等信息。但是如果我们想要链接一个文件夹下的所有文件,该怎么做呢?今天我们就来看看如何在 C# 项目中链接一个文件夹下的所有文件。

编辑项目文件引入单个文件

在项目文件中,我们可以通过 Compile 标签来引入单个文件。比如我们想要引入 AssemblyInfo.cs 文件,我们可以这样做:

  <Project>
  <ItemGroup>
  <Compile Include="../Shared/AssemblyInfo.cs">
  <Link>Properties/AssemblyInfo.cs</Link>
  </Compile>
  </ItemGroup>
  </Project>

这样我们就可以在项目中使用 AssemblyInfo.cs 文件中的代码了。

编辑项目文件引入文件夹下的所有文件

那如果想要引入多个文件,我们可以使用通配符来引入文件夹下的所有文件。比如我们想要引入 Shared 文件夹下的所有文件,我们可以这样做:

  <Project>
  <ItemGroup>
  <Compile Include="..\Shared\**\*.cs">
  <Link>Properties/%(Filename)%(Extension)</Link>
  </Compile>
  </ItemGroup>
  </Project>

这样我们就可以在项目中使用 Shared 文件夹下的所有文件中的代码了。

不过这样会使得所有的文件在项目中都会显示在 Properties 文件夹下,这样会让项目文件看起来很乱。我们可以通过修改 Link 标签来修改文件在项目中的显示位置。比如我们想要把 Shared 文件夹下的所有文件都显示在项目的根目录下,我们可以这样做:

  <Project>
  <ItemGroup>
  <Compile Include="..\Shared\**\*.cs">
  <Link>%(RecursiveDir)%(Filename)%(Extension)</Link>
  </Compile>
  </ItemGroup>
  </Project>

别忘了使用 Directory.Build.props 文件

上面的方法都是在项目文件中引入文件的,但是如果我们有很多项目,那么我们就需要在每个项目文件中都引入这些文件。这样会让我们的项目文件变得很乱。我们可以通过使用 Directory.Build.props 文件来解决这个问题。我们可以在解决文件夹下创建一个 Directory.Build.props 文件,然后在这个文件中引入文件夹下的所有文件。比如我们想要引入 Shared 文件夹下的所有文件,我们可以这样做:

  <Project>
  <ItemGroup>
  <Compile Include="..\Shared\**\*.cs">
  <Link>%(RecursiveDir)%(Filename)%(Extension)</Link>
  </Compile>
  </ItemGroup>
  </Project>

总结

通过上面的方法,我们可以在 C# 项目中引入文件夹下的所有文件。这样我们就可以在项目中使用这些文件中的代码了。

参考资料

感谢您的阅读,如果您觉得本文有用,请点赞、关注和转发;更多精彩内容请关注我的博客 https://www.newbe.pro 和 https://github.com/newbe36524/newbe36524

  • 本文作者: newbe36524
  • 本文链接: https://www.newbe.pro/Others/0x017-csharp-how-to-link-all-the-files-in-a-given-folder/
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

  1. https://learn.microsoft.com/en-us/visualstudio/msbuild/common-msbuild-project-items?view=vs-2022&WT.mc_id=DX-MVP-5003606#compile

  2. https://learn.microsoft.com/visualstudio/msbuild/customize-your-build?view=vs-2022&WT.mc_id=DX-MVP-5003606#directorybuildprops-and-directorybuildtargets

标签:文件,项目,C#,所有,我们,文件夹,引入,链接
From: https://www.cnblogs.com/sexintercourse/p/17212611.html

相关文章

  • Gradient-based Editing of Memory Examples for Online Task-free Continual Learnin
    摘要:在缺少明确的任务边界和任务标识的情况下,本文探索了task-freecontinuallearning(任务具有独立的数据标签空间,在训练和测试的过程中不提供任务识别符),在这个场景中需......
  • 「JOISC2017」门票安排
    题目点这里看题目。分析不妨先认为\(C_i=1\)。首先破环为链,则原问题等价于:你有一个长度为\(n\)的序列\(a\)和\(m\)个二元组\((l_i,r_i)\)。一开始时,\(a_i=0\)......
  • 【ChatGPT解答】python 如何判断某个方法是继承于哪个父类
    ME:python如何判断某个方法是继承于哪个父类?给个能直接用的示例,能够自动遍历多层父类GPT:在Python中,可以通过使用内置函数inspect.getmro()来获取一个类的方法解......
  • Cookie 、Session、localstorage、Sessionstorage的区别
     概念Cookie&Session(会话跟踪技术)、H4的存储机制;localstorage、Sessionstorage是WebStorage,H5的本地存储机制。是针对HTML4中Cookie存储机制的一个改善,由于Cookie......
  • ABC 293 ABCD(并查集)
    A-SwapOddandEven#include<bits/stdc++.h>usingnamespacestd;typedeflonglongLL;typedefpair<LL,LL>PII;constLLMAXN=1e18,MINN=-1e18;constLLN=1e6......
  • windows10下安装与配置Apache2+PHP8
    win10下安装apache1+php8主要有四个步骤:一、下载apache2和php8;二、解压并放在指定目录下;三、编辑php8的配置文件php.ini;四、配置apache2的配置文件httpd.conf文件。下面详......
  • 一百行代码实现简易版 ChatGPT | 社区征文
    最近,OpenAI的一款聊天机器人模型ChatGPT爆火,ChatGPT(全名:ChatGenerativePre-trainedTransformer),于2022年11月30日发布。ChatGPT是人工智能技术驱动的自然语言处理工具,它能......
  • Codeforces Round 713 (Div
    CodeforcesRound713(Div.3)A-BPalindrome给定字符串只含有\('?'\'0'\'1'\),给定字符串中1的个数\(a\)和0的个数\(b\),你需要将?替换成0或1,使得该字符串变成回文......
  • Docker 容器中使用PING命令报错
    报错原因下载的镜像是阉割版的有好多命令是没有的然后在这里提醒大家提前下载好需要用到的指令在镜像中解决方法dockerexec-ittomcat01/bin/bash执行aptinstall......
  • css中link和@import的比较
    <link>标签定义文档与外部资源的关系。<link>标签最常见的用途是链接样式表。注意: link元素是空元素(单标签),它仅包含属性。注意: 此元素只能存在于head部分,不过它......