Visual Studio扩展性:将现有文件夹添加到项目
时间:2020-03-05 18:53:53 来源:igfitidea点击:
我试图使用Visual Studio 2008的可扩展性来编写一个插件,该插件将在解析接口后创建一个包含各种消息的项目文件夹。但是,在创建/添加文件夹的步骤中遇到了麻烦。我试过使用
ProjectItem folder = item.ProjectItem.Collection.AddFolder(newDirectoryName, string.Empty);
(项目是我的目标文件,在该文件旁边,我正在创建一个具有相同名称但添加"消息"的文件夹),但是当文件夹已经存在时它会阻塞(不足为奇)。
我尝试删除它(如果已存在),例如:
DirectoryInfo dirInfo = new DirectoryInfo(newDirectoryParent + newDirectoryName); if (dirInfo.Exists) { dirInfo.Delete(true); } ProjectItem folder = item.ProjectItem.Collection.AddFolder(newDirectoryName, string.Empty);
我可以看到在调试时该文件夹已被删除,但是它仍然
似乎认为该文件夹仍然存在并且已经在该文件夹上死亡
存在异常。
有任何想法吗???
谢谢。
阿克
....也许答案在于删除后以编程方式刷新项目?怎么做?
解决方案
回答
是的,就是...
DirectoryInfo dirInfo = new DirectoryInfo(newDirectoryParent + newDirectoryName); if (dirInfo.Exists) { dirInfo.Delete(true); item.DTE.ExecuteCommand("View.Refresh", string.Empty); } ProjectItem folder = item.ProjectItem.Collection.AddFolder(newDirectoryName, string.Empty);
如果有一种更优雅的方式来做到这一点,将不胜感激...
谢谢。
回答
这是我想到的一个主意,因为我已经使用NAnt很久了,并认为它可能会起作用。
在文本编辑器中打开.csproj文件,并按以下方式添加目录:
<ItemGroup> <compile include="\path\rootFolderToInclude\**\*.cs" /> </ItemGroup>
如果已经存在" ItemGroup",那就很好。只需将其添加到现有的。 Visual Studio不会真正知道如何编辑该条目,但是它将扫描整个目录。
编辑我们想要的任何内容。