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

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

时间:2023-02-07 09:11:44浏览次数:57  
标签:文件 项目 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.prohttps://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/newbe36524/p/0x017-csharp-how-to-link-all-the-files-in-a-given-fol

相关文章

  • warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
    main.c:10:18:warning:casttopointerfromintegerofdifferentsize[-Wint-to-pointer-cast]主要原因是在源文件中没有声明函数未经声明的函数原型一律默认为返......
  • List<Map<String, Object>> 去出重复
    List<Map<String,Object>>去出重复publicstaticvoidmain(String[]args){String[]array={"name","age"};List<Map<String,Object>>oldList=getTe......
  • Nacos服务注册原理分析
    在分布式服务中,原来的单体服务会被拆分成一个个微服务,服务注册实例到注册中心,服务消费者通过注册中心获取实例列表,直接请求调用服务。服务是如何注册到注册中心,服务如......
  • java8中时间的各种转换(LocalDateTime)
      java8中时间的各种转换(LocalDateTime)1.将LocalDateTime转为自定义的时间格式的字符串publicstaticStringgetDateTimeAsString(LocalDateTimelocalDateTime......
  • C# 逆变的具体应用场景
    前言早期在学习泛型的协变与逆变时,网上的文章讲解、例子算是能看懂,但关于逆变的具体应用场景这方面的知识,我并没有深刻的认识。本文将在具体的场景下,从泛型接口设计的角度......
  • 【Django drf】视图层大总结 ViewSetMixin源码分析 路由系统 action装饰器
    目录九个视图子类视图集继承ModelViewSet类写五个接口继承ReadOnlyModelView编写2个只读接口ViewSetMixin源码分析查找as_view方法setattr修改对象的属性fromrest_framew......
  • CodeForces 1423G Growing flowers
    洛谷传送门CF传送门先离散化颜色。考虑对每种颜色单独求出答案。对于颜色\(x\),可以用总方案数\(n-k+1\)减去一个\(x\)都不包含的区间数量。对于这个,假设相邻两个颜......
  • 附录E示例-LinearPlacement_2
    示例概述意图此场景演示了IfcLinearPlacement与IfcAxi2PlacementLinear和IfcPointByDistanceExpression的组合使用。 先决条件此场景基于以下其他场景:-ProjectSetup_......
  • __sync_fetch_and_add和 __sync_add_and_fetch
    __sync_fetch_and_add和__sync_add_and_fetch都是原子性加法操作函数,可以在线程互斥的前提下对全局变量进行自加,不同的是___sync_fetch_and_add返回未进行加法的变量的值......
  • AcWing整数二分算法模板
    原链接boolcheck(intx){/*...*/}//检查x是否满足某种性质//区间[l,r]被划分成[l,mid]和[mid+1,r]时使用:intbsearch_1(intl,intr){while(l<r......