我有一个Visual Studio解决方案.目前,它是一个空的解决方案(=没有项目),我添加了一些解决方案文件夹.
解决方案文件夹似乎只是"虚拟文件夹",因为它们实际上并不是在文件系统中创建的,而解决方案文件夹中的文件只是与.sln文件位于同一文件夹中.
是否有一个我忽略的设置告诉Visual Studio将解决方案文件夹视为"真正的"文件夹,即在文件系统中创建它们并将文件移动到其中一个文件夹中时将文件移入其中?
编辑:谢谢.要为VS2010提出建议然后:)
有一种解决方法,实际上表现如预期.
将新的或现有的网站添加到解决方案中.(我通常会创建一个新的.)
只需确保在解决方案文件夹中创建它.(我有时甚至会创建一个外部文件夹的"链接",例如网络共享上的"文档"或"营销".在这种情况下,Git当然会忽略它.)
确保转到"项目"设置或配置管理器以从构建和部署中排除此"网站"!
完成.现在,解决方案资源管理器将反映文件系统中的任何更改,反之亦然(包括子文件夹).
我(小姐)将它用于规范,文档,PM和团队内共享的一些DevOps脚本.它很容易选择,包括在源代码控制中的内容,以及(如果设置正确)它与构建不冲突.
我知道该功能不适用于该用例,但除了可能具有误导性的"项目"图标之外,我还没有发现该黑客的任何短缺.并且仍然存在VS提供的经典(虚拟)解决方案文件夹的用例,适合图片.你怎么看?
没有特别的设置.我认为它不受支持.
您可以在解决方案中的"项目"中创建真实文件夹,但不能在解决方案本身中创建.
在Visual Studio 2017中,单击"解决方案资源管理器"窗口中的"解决方案和文件夹"图标.此按钮从虚拟"解决方案"视图切换到与文件系统上的文件夹和文件的布局相匹配的"源视图".添加新文件夹时,将在预期位置物理创建该文件夹. .
萨拉福特贡献了一个宏来增加这一点.在Visual Studio 2010中,如果打开宏资源管理器,您将看到一个名为"GenerateSlnFolderOnDirStructure"的宏.这将自动创建解决方案文件夹并添加文件.
选择的答案表明可以使用实际项目而不是解决方案文件夹,但实际上并没有解释如何使用。我想我在这里描述的可能是实现该目标的最不尴尬的方式... :-P
常规项目文件的问题在于它们最终将由编译MSBUILD
。而且,如果您想要一个仅包含不可编译文件的项目,那将是一个问题。
但是一段时间之前,Visual Studio引入了一种新的项目类型:共享项目(扩展名为.shproj)。默认情况下,不会编译该项目类型,而仅在(且仅当)另一个项目引用它时才进行编译。
因此,这里技巧的一部分是使用共享项目而不是解决方案文件夹。很显然,可以添加一个从未被任何其他项目引用的共享项目,这意味着我们可以避免上面提到的问题。
然后,通过使用
.shproj文件中的子句,我们可以使其自动反映所有新文件和/或子文件夹。
所以基本上做到这一点:
在您的解决方案中创建一个新文件夹。
在此新文件夹的根目录下添加一个新的.shproj文件。
在您的解决方案中引用新的.shproj。
例如,以我为例,我创建了一个DockerDev.shproj,因此我可以将一些仅在开发机器中运行的与Docker相关的脚本分组:
这.shproj文件将保持跟踪的任何文件,在任何新的子文件夹DockerDev
在我的解决方案文件夹。
据我所知,此解决方案的工作原理与OP所要求的非常相似:它将作为对文件夹的不可编译的引用而工作,并且将自动反映对其所做的任何更改。