2014-01-05 92 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文件。

相關問題