如何在移动文件时修复Visual Studio(2013)命名空间冲突

时间:2015-09-16 22:46:10

标签: c# asp.net visual-studio-2013

在项目中移动文件时,我遇到了一些非常令人沮丧的命名空间冲突问题。事实上,我学会了更好的移动文件的方法,但我希望找到一个解决方案。以下是我的经历:

通过剪切/粘贴移动文件后,我发生了命名空间冲突(我在不同文件夹中有许多相同名称的页面,例如Foo / Add.aspx和Bar / Add.aspx)。当我移动页面,关联代码和设计器到新文件夹时,我发生了命名空间冲突。当我更新名称空间时VS显示了一个小红色标记,表示它想要"帮助"我通过重命名。我有VS继续前进"帮助"只是在几次尝试之后发现它还重新命名了我移动过的文件夹中的文件,例如当我重命名为Foo / Add.aspx时VS也改变了Bar / Add.aspx的命名空间

有谁知道这是为什么?或者如何避免它?我通过手动更改所有命名空间来修复它,并且不允许VS到" help"我出去了。

3 个答案:

答案 0 :(得分:1)

有几个选择:

  • 如果你有Resharper,那么使用 Move 功能
  • 不要复制/粘贴项目,而应该拖放 - 这样就可以更新proj文件并保持文件关系(即当你生成代码时等)。然后,在您放弃的那一刻,去更改已删除文件中的命名空间。
  • 在目标文件夹中创建一个新文件,然后只复制旧文件中的内容(名称空间声明中的所有内容)。新文件已经自动定义了适当的命名空间。

这些都不会整理任何引用已复制/移动的旧代码的代码。您必须自己修复这些引用,除非您使用Resharper(在移动中为您执行此操作)。

答案 1 :(得分:0)

如果您正在讨论类命名空间,问题是VS无法知道您要重命名的“添加”命名空间。它只是将与当前名称匹配的所有(在当前范围内)重命名为新名称。如果你想避免这种情况发生,他们需要至少在不同的VS项目中。 VS不关心文件名或路径,除了找到它们进行编译所需的最小程度。

答案 2 :(得分:0)

我所做的是,我总是在目标项目中创建我的类,并将源类的内容复制到目标类。这样你就会安全。

我怀疑是否有任何神奇的方法来避免这个问题。