使用 EnvDTE API 从 visual studio 加载项内部以编程方式将文件作为 link 添加到 C# 项目中

Programmaticaly add file as a link in C# project from inside visual studio add-in using EnvDTE API

我正在开发一个 Visual Studio 加载项,作为其功能的一部分,它必须修改现有的 C# 项目,方法是将 links 的项目项添加到项目外部的文件中树.
我似乎找不到使用 EnvDTE 命名空间中公开的 ProjectItems 接口的方法将 link 插入到项目中的文件的方法。
另一种方法是手动修改项目文件并插入 XML 元素,但我宁愿避免这种情况,而是尽可能使用 visual studio 提供的接口。

我认为使用 C#(或 VB.NET)的自动化模型 (EnvDTE) 是不可能的,仅适用于 C++。根据 MSDN Docs about ProjectItems.AddFromFile Method:

FileName 不需要包含完整路径,只要可以找到文件即可。如何找到文件取决于编程语言。例如,为了在 Visual Basic 和 Visual C# 中使用无路径文件,这些文件必须与项目位于同一目录中。如果不是,则将它们复制过来。 Visual C++ 允许链接到系统上任何位置的文件。

您可以尝试使用 VS 本机服务(甚至可以通过加载项)。具体来说,尝试 IVsProject.AddItem method with VSADDITEMOPERATION.VSADDITEMOP_LINKTOFILE.