在 Visual Studio 中,当您在 .csproj 文件中的解决方案中添加对现有项目的引用时,结果如下:
<ProjectReference Include="..\TestProject2\TestProject2.csproj">
<Project>{15EC8369-B0C5-4F71-A366-19042F450A2D}</Project>
<Name>TestProject2</Name>
</ProjectReference>
如果我通过 EnvDTE 添加对程序集 DLL 的引用:
var p = _project as VsProject;
p.References.Add(<path to assembly DLL>);
它像这样结束:
<Reference Include="TestProject2.csproj">
<HintPath>..\TestProject2\bin\Debug\TestProject2.csproj.dll</HintPath>
</Reference>
这不是很好,因为如果我切换到发布版本,它仍然会引用调试程序集。另一个问题是我必须先构建引用的程序集,然后才能将其添加为引用。使用 Visual Studio UI,我可以添加对未构建项目的引用。
是否可以通过 EnvDTE API 添加项目参考?
我知道我可以将 .csproj 文件作为 XML 文档进行操作并做任何我想做的事情,但由于我从 EnvDTE 的路径开始,我更愿意坚持下去。