Visual studio 为什么可以';在构建解决方案时,我是否在VisualStudio中使用Quick Replace?

Visual studio 为什么可以';在构建解决方案时,我是否在VisualStudio中使用Quick Replace?,visual-studio,visual-studio-2013,Visual Studio,Visual Studio 2013,我使用VisualStudio社区2013来处理包含一组C++项目的解决方案。在我的日常工作流程中,我经常更改一个项目的代码并重建它(这可能需要花费大量的时间),同时我继续在同一解决方案中处理另一个项目 我注意到快速替换功能(如编辑>查找和替换>快速替换(CTRL+H)中所示)不适用于任何项目,只要建筑未完成或中断。特别是,“搜索项”字段始终可用(因此我可以继续搜索任何我想要的内容),但相应的“替换项”变灰 为什么Visual Studio在生成解决方案时禁止搜索和替换?有可能避免这种行为吗?我

我使用VisualStudio社区2013来处理包含一组C++项目的解决方案。在我的日常工作流程中,我经常更改一个项目的代码并重建它(这可能需要花费大量的时间),同时我继续在同一解决方案中处理另一个项目

我注意到
快速替换
功能(如
编辑>查找和替换>快速替换(CTRL+H)
中所示)不适用于任何项目,只要建筑未完成或中断。特别是,“搜索项”字段始终可用(因此我可以继续搜索任何我想要的内容),但相应的“替换项”变灰


为什么Visual Studio在生成解决方案时禁止搜索和替换?有可能避免这种行为吗?

我找到了一种适合我的方法:我可以在Visual Studio的第二个会话中加载相同的解决方案,并在那里构建修改后的项目(或整个解决方案)。 同时,我可以继续使用VisualStudio的第一个会话来处理同一解决方案中的其他项目。这样,快速更换功能始终可用


这并不完全是我所希望的,但它仍然是一个非常适合我的解决方案。

我找到了一种适合我的方法:我可以在Visual Studio的第二个会话中加载相同的解决方案,并在那里构建修改后的项目(或整个解决方案)。 同时,我可以继续使用VisualStudio的第一个会话来处理同一解决方案中的其他项目。这样,快速更换功能始终可用


这并不完全是我所希望的,但它仍然是一个非常适合我的解决方案。

这可能是一种安全机制,可以防止用户启动构建、修改文件,然后构建进入修改后的文件时出现竞争情况。我认为大多数用户希望构建能够原子化地工作。由于“快速替换”对话框可以跨越多个项目,因此在构建过程中完全禁用它可能比确保它在任何情况下都是安全的更容易。微软可能会改进它的功能,但我怀疑它在他们的优先列表中是否排得很高。起初,我还认为它可能是一种安全机制。但同时,我可以在构建运行时轻松编辑和保存任何源文件(是的,包括属于当前构建项目的文件)。如果你的论证是正确的,那么这些用户交互很可能会给构建过程带来同样的麻烦,因此Microsoft也应该阻止这些。他们可能使用不同的机制来保存更改。我相信Find/Replace允许您对编辑器中未实际打开的文件进行更改。编辑器可能有额外的内置保护措施,以确保修改后的文件不会干扰生成(可能是卷影复制?)。这也可能只是一个从未修正过的疏忽。不管是哪种方式,我认为除了负责该功能的Microsoft员工之外,其他人都无法回答。这可能是一种安全机制,用于防止用户启动生成、修改文件,然后生成到修改后的文件时出现争用情况。我认为大多数用户希望构建能够原子化地工作。由于“快速替换”对话框可以跨越多个项目,因此在构建过程中完全禁用它可能比确保它在任何情况下都是安全的更容易。微软可能会改进它的功能,但我怀疑它在他们的优先列表中是否排得很高。起初,我还认为它可能是一种安全机制。但同时,我可以在构建运行时轻松编辑和保存任何源文件(是的,包括属于当前构建项目的文件)。如果你的论证是正确的,那么这些用户交互很可能会给构建过程带来同样的麻烦,因此Microsoft也应该阻止这些。他们可能使用不同的机制来保存更改。我相信Find/Replace允许您对编辑器中未实际打开的文件进行更改。编辑器可能有额外的内置保护措施,以确保修改后的文件不会干扰生成(可能是卷影复制?)。这也可能只是一个从未修正过的疏忽。不管怎样,我认为除了负责该功能的微软员工之外,其他人都无法回答。