2009-07-13 65 views
0

我想知道如果有可能產生某種模板的,我舉一個XML或XSL文件中的筆和生成C#代碼是否可以使用StylusStudio生成Visual Studio解決方案文件?

我做了一些的.cs和工作正常,但我不能用的csproj和SLN文件,

所以,這就是爲什麼我問

我用來編程的C# dll文件是一個n層編程

+0

你在做什麼?你爲什麼要用XML工具而不是VS本身或像cmake或premake這樣的元生成器來創建sln文件?也許編輯你的問題,以解釋的理由,以獲得更好的答案。 – haffax 2009-07-13 23:51:31

回答

0

Stylus Studio包含XSLT和XQuery,並且您可以編寫文本文件。因此,如果您有合適的源文件,則可以手動編寫.sln文件 - 因爲.sln文件不是XML。項目文件(如.vbproj.csproj)是XML,可以通過Stylus Studio輕鬆創建。

這是你在問什麼?

如果您有XSLT或XQuery程序,您可以選擇生成代碼來驅動該變換。它會爲你創建一個Visual Studio項目。對於XQuery,它將使用.Net Saxon XQuery引擎。對於XSLT,支持.Net的幾種不同的XSLT引擎。

使用「XQuery>生成代碼>生成C#代碼...」或「XSLT>生成代碼>生成C#代碼...」選項來實際創建代碼和服務人員.sln文件。

但是,如果您因爲某種原因需要使用Stylus Studio中的XSLT創建.sln文件,請參閱以下步驟。

樣品輸入文件: FAE04EC0-301F-11D3-BF4B-00C04F79EFBC 看門狗 DB3FBB37-100C-40DD-B154-153E3F3A68FF

示例XSLT文件,以創建從上方.xml.sln

<?xml version="1.0"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:output method="text"/> 

    <xsl:template match="/"> 
     <xsl:text>&#xD;&#xA;</xsl:text> 
     <xsl:text>Microsoft Visual Studio Solution File, Format Version 10.00&#xD;&#xA;</xsl:text> 
     <xsl:text># Visual Studio 2008&#xD;&#xA;</xsl:text> 
     <xsl:apply-templates select="projects/project" mode="a"/> 
     <xsl:text>Global&#xD;&#xA;</xsl:text> 
     <xsl:text>&#9;GlobalSection(SolutionConfigurationPlatforms) = preSolution&#xD;&#xA;</xsl:text> 
     <xsl:text>&#9;&#9;Debug|Any CPU = Debug|Any CPU&#xD;&#xA;</xsl:text> 
     <xsl:text>&#9;&#9;Release|Any CPU = Release|Any CPU&#xD;&#xA;</xsl:text> 
     <xsl:text>&#9;EndGlobalSection&#xD;&#xA;</xsl:text> 
     <xsl:text>&#9;GlobalSection(ProjectConfigurationPlatforms) = postSolution&#xD;&#xA;</xsl:text> 
     <xsl:apply-templates select="projects/project" mode="b"/> 
     <xsl:text>&#9;EndGlobalSection&#xD;&#xA;</xsl:text> 
     <xsl:text>&#9;GlobalSection(SolutionProperties) = preSolution&#xD;&#xA;</xsl:text> 
     <xsl:text>&#9;&#9;HideSolutionNode = FALSE&#xD;&#xA;</xsl:text> 
     <xsl:text>&#9;EndGlobalSection&#xD;&#xA;</xsl:text> 
     <xsl:text>EndGlobal&#xD;&#xA;</xsl:text> 
    </xsl:template> 

    <xsl:template match="project" mode="a"> 
     <xsl:text>Project("{"</xsl:text> 
     <xsl:value-of select="../guid"/> 
     <xsl:text>}") = "</xsl:text> 
     <xsl:value-of select="name"/> 
     <xsl:text>", "</xsl:text> 
     <xsl:value-of select="name"/> 
     <xsl:text>\</xsl:text> 
     <xsl:value-of select="name"/> 
     <xsl:text>.csproj", "{</xsl:text> 
     <xsl:value-of select="guid"/> 
     <xsl:text>}"&#xD;&#xA;</xsl:text> 
     <xsl:text>EndProject&#xD;&#xA;</xsl:text> 
    </xsl:template> 

    <xsl:template match="project" mode="b"> 
     <xsl:text>&#9;&#9;{</xsl:text> 
     <xsl:value-of select="guid"/> 
     <xsl:text>}.Debug|Any CPU.ActiveCfg = Debug|Any CPU&#xD;&#xA;</xsl:text> 
     <xsl:text>&#9;&#9;{</xsl:text> 
     <xsl:value-of select="guid"/> 
     <xsl:text>}.Debug|Any CPU.Build.0 = Debug|Any CPU&#xD;&#xA;</xsl:text> 
     <xsl:text>&#9;&#9;{</xsl:text> 
     <xsl:value-of select="guid"/> 
     <xsl:text>}.Release|Any CPU.ActiveCfg = Release|Any CPU&#xD;&#xA;</xsl:text> 
     <xsl:text>&#9;&#9;{</xsl:text> 
     <xsl:value-of select="guid"/> 
     <xsl:text>}.Release|Any CPU.Build.0 = Release|Any CPU&#xD;&#xA;</xsl:text> 
    </xsl:template> 
</xsl:stylesheet> 
0

Visual Studio解決方案文件不是XML,所以我不希望鐵筆工作室要與他們做很多事情。

摘錄解決方案文件:

 

Microsoft Visual Studio Solution File, Format Version 10.00 
# Visual Studio 2008 
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HttpsUrlWithPort", "HttpsUrlWithPort\HttpsUrlWithPort.csproj", "{9FD67B56-9D49-4989-89D0-06A29ACAA5A3}" 
EndProject 
+0

我不確定StylusStudio是什麼,但我相信Visual Studio Solution文件是XML格式的。 – NotDan 2009-07-13 23:48:30

0

答:使用t4!

Visual Studio的T4代碼生成 使用微軟的T4模板語言創建模板。

問:我想爲我的應用程序生成一些代碼,Microsoft有一個代碼生成器t4。

答:微軟有一個代碼生成工具T4代表文本轉換模板工具包。

T4附帶Visual Studio 2008,或者如果您使用VS 2005,則可以下載它。

相關問題