2014-01-05 81 views
0

感谢您的期待。使用C#,我如何“包含”文件到项目中?

我有一个小程序根据一些项目信息和数据库连接生成一个新的.NET解决方案。

作为此过程的一部分,我使用edmgen2自动生成ADO.NET实体数据模型/ .edmx文件。

此代码正常工作,并生成添加到Windows中项目文件夹中的.edmx等。

的问题

当我打开生成的溶液中,随后含有.edmx的DAL项目,我必须再展排除的文件,单击鼠标右键,然后手动include的的.edmx。

这并不是什么大问题,但如果在生成.edmx后自动将其包含在VS Project中,我可以调用代码将会更好。

这可能吗?

ADDING下面的解答:下面

的回答让我去,但我却发现,我不能在我改变其他XML文件通常的方式.csproj的XML操作。您必须使用msbuild命名空间。这里是我工作:

var csproj = XDocument.Load(SolutionFolder + @"\SomeProject.csproj"); 
XNamespace msbuild = "http://schemas.microsoft.com/developer/msbuild/2003"; 
var itemGroups = csproj.Descendants(msbuild + "ItemGroup"); 
var itemGroup = itemGroups.FirstOrDefault(x => x.Descendants(msbuild + "Compile").Any()); 
var item = new XElement(msbuild + "Compile"); 
item.SetAttributeValue("Include", "ApplicationEntityModel.edmx"); 
itemGroup.Add(item); 
csproj.Save(SolutionFolder + @"\SomeProject.csproj"); 

回答

2

未测试: 您可以编辑* .csproj的文件,并添加新的文件<ItemGroup>部分。它是一个可以编程编辑的xml文件。

<ItemGroup> 
    <Compile Include="fileName" /> 
    </ItemGroup> 
1

的C#项目文件*.csproj实际上是一个XML文件,所以您的工具完成生成解决方案后,即可打开所需的项目文件的XML(XDocumentXmlDocument等),并添加到它Item元素它会指向生成的.edmx文件。

相关问题