如何在C#项目中链接一个文件夹下的所有文件详解
作者:Newbe36524 时间:2022-09-08 08:48:22
前言
在 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>
来源:https://www.cnblogs.com/newbe36524/p/0x017-csharp-how-to-link-all-the-files-in-a-given-folder.html
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
教你C#将CSV转为Excel的实现方法
![](https://img.aspxhome.com/file/2023/8/122628_0s.png)
C#中#define后面只加一个参数的解释
WPF自定义控件和样式之自定义按钮(Button)
![](https://img.aspxhome.com/file/2023/5/108825_0s.gif)
简单介绍区分applet和application的方法
Java的关键字与标识符小结
![](https://img.aspxhome.com/file/2023/2/72602_0s.png)
Android获取栈顶的应用包名方法
C#堆排序实现方法
java商城项目实战之购物车功能实现
![](https://img.aspxhome.com/file/2023/0/63340_0s.jpg)
Android recyclerview实现纵向虚线时间轴的示例代码
![](https://img.aspxhome.com/file/2023/3/102613_0s.png)
c# WinForm制作图片编辑工具(图像拖动、缩放、旋转、抠图)
![](https://img.aspxhome.com/file/2023/7/104287_0s.png)
解析Android截取手机屏幕两种实现方案
Java读取json数据并存入数据库的操作代码
Android实现在一个activity中添加多个listview的方法
关于Kotlin写界面时诸多控件的点击事件
![](https://img.aspxhome.com/file/2023/5/137585_0s.jpg)
了解Java线程池执行原理
![](https://img.aspxhome.com/file/2023/5/87175_0s.jpg)
java堆排序概念原理介绍
![](https://img.aspxhome.com/file/2023/9/64889_0s.png)
JDK动态代理原理:只能代理接口,不能代理类问题
Java接口的作用_动力节点Java学院整理
![](https://img.aspxhome.com/file/2023/0/61570_0s.png)