我有一个控制台应用程序,它从数据库为我构建了一些默认类。构建文件后,我希望能够刷新我的文件夹并在我的类库中查看新文件。
但是,无论我做什么,文件都不会显示,除非我进入并手动添加现有文件。VS2010有没有办法查看文件夹并将该文件夹中的任何内容添加到项目中?例如:
文件夹 > File1.cs、File2.cs、File3.cs、File4.cs
VS2010 看到
文件夹 > File1.cs
如何让 VS2010 显示这些新类?
我有一个控制台应用程序,它从数据库为我构建了一些默认类。构建文件后,我希望能够刷新我的文件夹并在我的类库中查看新文件。
但是,无论我做什么,文件都不会显示,除非我进入并手动添加现有文件。VS2010有没有办法查看文件夹并将该文件夹中的任何内容添加到项目中?例如:
文件夹 > File1.cs、File2.cs、File3.cs、File4.cs
VS2010 看到
文件夹 > File1.cs
如何让 VS2010 显示这些新类?
您的问题是您只会看到 .csproj 文件中包含和引用的文件。总的来说,这是一件好事,因为它使您可以最终控制项目中考虑的内容或不考虑的内容。不过,这会给您带来问题,因为插入到您的项目目录中的创建文件没有被引用。正如您所提到的,您可以手动包含文件,但我知道您希望此过程是自动的。
在我看来,解决这个问题的最佳方法是使用设计时 T4 模板,而不是让项目创建文件。设计时 T4 模板是类似于 Razor 之前的 ASP.NET 视图的文件,允许在项目中生成代码。您可以访问您的数据库,格式化您的类,然后将 .cs 文件直接输出到您的项目中,而无需构建它。这非常方便,因为它使您可以根据输出捕获可能出现的编译时错误,而无需进行完整的构建。
可以通过修改项目的 .csproj/vbproj 文件从另一个应用程序或脚本自动添加它们
<Compile Include="My Project\MyClass.vb" />
这必须在正确的项目组中完成。
没有亲自尝试过,但是您应该可以使用它来做到这一点..
首先使用应用程序的解决方案获取对项目的引用,然后使用 Visual Studio 自动化框架 (DTE):
ProjectItems p = Project.ProjectItems;
p.AddFromFile("File1.cs");
取自:http: //msdn.microsoft.com/en-us/library/envdte.projectitems.addfromfile.aspx 我会进一步阅读。
我认为这不是直接可能的。您可以编写一个模板文件 (t4)来创建您的 cs 文件,并在运行转换文件时将它们添加到项目中。
为了在构建之后/之前运行转换文件,您可以编写一个构建前/构建后事件。
这将要求您创建一个 VS 加载项。您可以在此处找到一个示例...
好的,所以我有一个控制台应用程序,它正在从数据库为我构建一些默认类。
你不能让这个应用程序把所有的类都写在一个文件中,Proxy.cs
比如说Entities.cs
. 然后每次重新生成文件并重建项目时,您都可以访问新类。