如何在生成的命名空间中不包含Visual Studio项目文件夹名称

41
如何防止VS项目中解决方案文件夹的名称附加到新添加到该文件夹的项目生成的命名空间中?
例如:在VS解决方案中创建一个C#项目,设置默认命名空间为“BigClient.Domain”。
如果您在此项目中创建一个名为“MySpecialStuff”的解决方案文件夹,然后向'MySpecialStuff'文件夹添加一个新类,则VS将使用“BigClient.Domain.MySpecialStuff”命名空间创建新的.cs文件。我想找到一种方法,以允许新添加的类的命名空间保留仅“BigClient.Domain”项目级别命名空间,而不是VS将“MySpecialStuff”解决方案文件夹名称附加到命名空间。
我记得曾经看到过某个人的博客文章说这是可能的(通过VS中的选项/设置或注册表设置),但现在我无法回忆起在哪里或如何实现了 :)
如果答案因不同的VS版本而异,则我的平台是VS 2008。

6
这一直是我永远的烦恼。 - Yoopergeek
2
注意:所指的不是解决方案文件夹,而是项目中的文件夹。解决方案文件夹是解决方案中的文件夹,但不在任何项目内部。 - John Saunders
非常正确 - 发现得好。标题已更新以反映这个(重要)区别。 - sbohlen
3
我知道这个问题已经被回答了,但是如果你在解决方案资源管理器中选择文件夹,然后点击属性,将 命名空间提供程序(Namespace Provider) 设置为 False。 - MarkDav.is
2个回答

7
如果您已经安装了ReSharper,在目录设置(F4)中将“命名空间提供程序”设置为false。

似乎没有看到哪里有这个--你是指在VS中解决方案文件夹本身的属性吗?唯一列出的属性是“文件夹名称”(当然,就是文件夹本身的名称)。 - sbohlen
2
啊,没事了。我猜那是 ReSharper 的设置,而不是内置于 Visual Studio 中的。 - bdukes
我已将其设置为文件夹,但仍然在新文件中包含目录的命名空间。 - Zyo

1
创建新的类模板或更改Visual Studio的类模板。请参阅MSDN文档以了解如何操作。在模板文件中,您可以快速找到插入“safe”命名空间名称的行。

9
我不确定为什么这被接受为答案。它没有回答原帖的问题。http://msdn.microsoft.com/en-us/library/eehb4faa%28VS.80%29.aspx列出了所有内置的模板参数,似乎只有一个参数$rootnamespace$与命名空间有关,并且$rootnamespace$似乎总是包含所添加文件所在的文件夹名称。这正是原帖作者希望消除的。 - Yoopergeek
2
我知道这个问题已经有答案了,但是如果你在解决方案资源管理器中选择文件夹,然后选择属性,在命名空间提供程序中设置为False。 - MarkDav.is
@Yoopergeek:$safeitemrootname$ | 在“添加新项”对话框中输入的安全文件名(不带扩展名)。对于多文件模板,这是从.vstemplate正在处理的当前模板项的安全文件名。 - devios1
7
@MarkDavis,这仅适用于已安装Resharper。 - Mike Perrenoud

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接