可以通过扩展以编程方式重命名 'linked' 文件吗

Can a 'linked'-file be renamed programatically via an Extension

我写了一个扩展,除其他外,它根据文件包含的类型重命名文件。

这对于 csproj 文件下的目录树中的文件工作正常 -- 我找到了该文件的 ProjectItem 条目并更改了它的名称。

对于 'linked'-文件(那些不在目录树中的文件)我可以重命名文件(通过 File.Move())但还没有找到以编程方式修改 csproj-文件(重命名后必须手动修改 csproj 文件)。

如果这是可以完成的事情,我将不胜感激指向显示如何实现该功能的文档的指针。

对我来说最简单的解决方案是修改 csproj 文件。

  1. 打开,读取整个文件,关闭。
  2. 确认我要重命名的文件(例如 xxx.cs)仅出现在 1 个目录中 (如果它出现在多个目录中,则必须手动完成更改。)
  3. 做出改变
  4. 打开,写入整个文件,关闭
  • 对于 SDK 项目,更改会立即应用。
  • 对于非 SDK 项目,在响应 csproj 文件已修改的提示后应用更改。