gpt4 book ai didi

c# - 如何以编程方式将文件包含在我的项目中?

转载 作者:IT王子 更新时间:2023-10-29 04:02:36 25 4
gpt4 key购买 nike

背景

我正在制作一个帮助应用程序,它重新格式化一些代码文件并创建新的代码文件,这些文件将被添加到我的其他项目中,所以我可以立即使用新代码,但我在添加它时遇到了严重的问题新代码文件自动进入我的项目。顺便说一句,它是用 c# 编写的,助手应用程序是 WinForms。

失败的尝试

This question唯一的答案有两种方法可以做到这一点,但我无法使它们中的任何一种起作用。第一个我找不到要引用的 Microsoft.Build 程序集,而另一个显然没有足够的命令行参数。

问题

如何在不使用第三方应用程序的情况下以编程方式将文件包含到项目中?

基本上,我正在寻找与此等效的内容:

...但是使用代码完成。

要求

这些是我认为该解决方案应该提供的功能:

  • 选择包含我们要将文件添加到的项目解决方案
  • 选择要添加文件的项目
  • 在项目中选择目录
  • 当然还有我们要添加的文件

进展

在用户@psubsee2003 的帮助下,我能够在 C:\Windows\Microsoft.NET\Framework\v4.0.30319 文件夹中找到 Microsoft.Build.dll 文件在我的计算机上,并通过将我的项目的目标框架更改为版本 4 完整配置文件,而不是默认的客户端配置文件,成功导入它。

而且我找到了如何使用 AddItem 方法:

var p = new Microsoft.Build.Evaluation.Project(@"C:\projects\MyProject.csproj");
p.AddItem("Compile", @"C:\folder\file.cs");
p.Save();

文件将出现在项目的根文件夹中,除非项目已经有一个名为 folder 的文件夹,在这种情况下,文件将放置在那里。所以基本上文件将被放置在原始文件路径中找到的最深的文件夹链中,指向根文件夹。

最佳答案

它适用于我将它添加到 ProjectFolder,并像这样以编程方式添加文件夹。

var p = new Microsoft.Build.Evaluation.Project(@"C:\projects\BabDb\test\test.csproj");
p.AddItem("Folder", @"C:\projects\BabDb\test\test2");
p.AddItem("Compile", @"C:\projects\BabDb\test\test2\Class1.cs");
p.Save();

关于c# - 如何以编程方式将文件包含在我的项目中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18544354/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com