添加和删​​除在Visual Studio项目之间的多次引用(Adding and removing

2019-09-16 08:32发布

我有超过50或60的csproj文件,一个巨大的工程。 我需要删除6个或7引用退出引用并在所有这些项目加10个或15个新引用。 是否有mechansim批量添加引用和删除引用?

或者,如果有一种方法可以说,在所有项目替换为Y参考X,那将是非常有帮助了。 让我补充一点的NuGet是不是一种选择。

Answer 1:

这一个简单的:只写打开了所有的脚本.proj文件,删除你不需要并添加您做线的线。 这是最简单的方法。 我觉得也有写插件VS或ReSharper的选项,但是这两个选项是矫枉过正。 项目文件只是毕竟XML文件(=文本文件),并可以作这样的处理。

当然,如果你觉得这是一个经常性的动作,或者如果有,你需要坚持,然后写一个插件,一些有条件的逻辑是一个明智的选择。



Answer 2:

您可以通过编写使用脚本/宏添加到Visual Studio中的多个项目的参考AutoHotkey的 。

下面的方法与Visual Studio,而不是直接操作的项目文件中的文本的副本运行交互,它利用的事实,你可以不使用鼠标和仅使用键盘所做的一切(大多数?)的事情。 它通过发送相应的按键到Visual Studio,以便找到合适的项目,合适的点击广告,打开引用等

对于脚本工作,你需要有一个项目打开资源视图窗口中执行脚本之前高亮显示。 这是这样,它可以按名称搜索项目(Solution Explorer中可能有阻止此文件夹)。 您还需要通过重命名项目窗口解决方案名称和您要添加引用名称引用的名称来调整该脚本。 该projects.txt只是在同一个目录下的文本文件作为换行符您的AutoHotkey脚本分开的,你要添加的参考项目列表。

注:我使用Visual Studio 2008。另外,我还没有使用过任何科学的方法来确定我的睡眠时间,他们甚至可能不是必要的。 这是一个战术性的解决方案和脚本无疑可优化和改进。

 ; Prepare array from project list ArrayCount = 0 ; Initialise array counter Loop, Read, projects.txt ; This loop retrieves each line from the file, one at a time. { ArrayCount += 1 ; Keep track of how many items are in the array. Array%ArrayCount% := A_LoopReadLine ; Store this line in the next array element. } IfWinExist SolutionName - Microsoft Visual Studio (Administrator) ; Check if VS2008 with solution is running { WinActivate ; Bring a window to front Loop %ArrayCount% { element := Array%A_Index% ; Grabs current project name from array Send % element ; types the name of the project Sleep 100 Send {AppsKey}F{Tab}{Tab}{Space} Sleep 100 Send ReferenceName{Enter} Sleep 100 Send {Enter} Sleep 100 } } else { MsgBox Cannot find "SolutionName - Microsoft Visual Studio (Administrator)" window. } 



文章来源: Adding and removing multiple references across projects in Visual Studio