写点什么

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

作者:newbe36524
  • 2023-02-07
    上海
  • 本文字数:1280 字

    阅读完需:约 4 分钟

如何在 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 许可协议。转载请注明出处!

发布于: 刚刚阅读数: 3
用户头像

newbe36524

关注

开源项目作者,独立博客维护者 2020-06-02 加入

newbe36524 是一名开发工程师。newbe 是 newbe36524 的个人技术博客。秉承 now everyone will be excellent 的 slogan 希望为开发者们分享自己的开发经验和心路历程。

评论

发布
暂无评论
如何在 C# 项目中链接一个文件夹下的所有文件_newbe36524_InfoQ写作社区