2012-08-10 58 views
4

我在這裏遇到了一些麻煩。如何使用模板生成解決方案?

我希望能夠使用與VS2010使用的模板相似的模板來生成C#項目(和解決方案)(我們假設一個C#控制檯應用程序)。 基本上我想要一個方法GenerateConsoleApplication就是這麼做的。但是由於我需要生成其中的幾個,我想使用一個模板來填充將與.csproj和app.xml文件一起生成的program.cs類的Main方法。

public void GenerateConsoleApplication() 
{ 
    var projectName = "MyConsoleApplication"; 
    var projectLocation = "C:\temp"; 

    // what goes here so that it creates a solution Visual Studio that I could use ? 
} 

我查找了VS2010使用的項目模板來生成一個C#控制檯應用程序,我想我可以修改它以適合我的需要。但我不知道我需要編寫哪些代碼才能使用該模板並生成新解決方案的所有文件。 有誰知道該怎麼做?或者如果它甚至是可能的?

我知道我只能寫csproj文件和其他文件,但我認爲模板可以更容易地進行更改。

+2

您是否閱讀過MSDN上的[如何創建項目模板](http://msdn.microsoft.com/en-us/library/xkh1wxd8.aspx)文檔?您是否閱讀了[this](http://msdn.microsoft.com/zh-cn/magazine/cc188697.aspx)MSDN雜誌的文章? – Oded 2012-08-10 10:00:34

+0

是的,我做到了。但我不想爲視覺創建解決方案模板。我想寫一段代碼來生成解決方案。 – user1589859 2012-08-10 10:04:12

+0

嘗試[Templify](https://github.com/endjin/Templify)。 [Sharp Architecture](http://sharparchitecture.net/)使用它來生成解決方案 – Eranga 2012-08-10 10:06:03

回答

1

剛剛找到我需要做的。

問題歸結爲模板文件的解析。 一旦我得到解析器,那麼我可以用適當的值替換標籤。我想使用Visual Studio的解析器來做到這一點,並稍微修改它已經使用的模板,但這是不可能的。

所以人們必須編寫自己的解析器並使用它來生成文件。 然後,可以使用Regex用Regex.Replace(String,String,MatchEvaluator)方法替換模板文件的標記。

+1

爲什麼你想重新創建項目模板(當使用正則表達式創建和/或替換XML文件中的東西,即.csproj和.sln文件時,你會遇到麻煩)那裏可用的解決方案? :-) – CodeCaster 2012-08-10 11:48:44

相關問題