我想知道如果有可能產生某種模板的,我舉一個XML或XSL文件中的筆和生成C#代碼是否可以使用StylusStudio生成Visual Studio解決方案文件?
我做了一些的.cs和工作正常,但我不能用的csproj和SLN文件,
所以,這就是爲什麼我問
我用來編程的C# dll文件是一個n層編程
我想知道如果有可能產生某種模板的,我舉一個XML或XSL文件中的筆和生成C#代碼是否可以使用StylusStudio生成Visual Studio解決方案文件?
我做了一些的.cs和工作正常,但我不能用的csproj和SLN文件,
所以,這就是爲什麼我問
我用來編程的C# dll文件是一個n層編程
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>
</xsl:text>
<xsl:text>Microsoft Visual Studio Solution File, Format Version 10.00
</xsl:text>
<xsl:text># Visual Studio 2008
</xsl:text>
<xsl:apply-templates select="projects/project" mode="a"/>
<xsl:text>Global
</xsl:text>
<xsl:text>	GlobalSection(SolutionConfigurationPlatforms) = preSolution
</xsl:text>
<xsl:text>		Debug|Any CPU = Debug|Any CPU
</xsl:text>
<xsl:text>		Release|Any CPU = Release|Any CPU
</xsl:text>
<xsl:text>	EndGlobalSection
</xsl:text>
<xsl:text>	GlobalSection(ProjectConfigurationPlatforms) = postSolution
</xsl:text>
<xsl:apply-templates select="projects/project" mode="b"/>
<xsl:text>	EndGlobalSection
</xsl:text>
<xsl:text>	GlobalSection(SolutionProperties) = preSolution
</xsl:text>
<xsl:text>		HideSolutionNode = FALSE
</xsl:text>
<xsl:text>	EndGlobalSection
</xsl:text>
<xsl:text>EndGlobal
</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>}"
</xsl:text>
<xsl:text>EndProject
</xsl:text>
</xsl:template>
<xsl:template match="project" mode="b">
<xsl:text>		{</xsl:text>
<xsl:value-of select="guid"/>
<xsl:text>}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
</xsl:text>
<xsl:text>		{</xsl:text>
<xsl:value-of select="guid"/>
<xsl:text>}.Debug|Any CPU.Build.0 = Debug|Any CPU
</xsl:text>
<xsl:text>		{</xsl:text>
<xsl:value-of select="guid"/>
<xsl:text>}.Release|Any CPU.ActiveCfg = Release|Any CPU
</xsl:text>
<xsl:text>		{</xsl:text>
<xsl:value-of select="guid"/>
<xsl:text>}.Release|Any CPU.Build.0 = Release|Any CPU
</xsl:text>
</xsl:template>
</xsl:stylesheet>
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
我不確定StylusStudio是什麼,但我相信Visual Studio Solution文件是XML格式的。 – NotDan 2009-07-13 23:48:30
John is correct,你會更好使用記事本,但有一個free version of Visual Studio 2008,你可以用它來創建多種類型的解決方案,如果你不想投資於許可證。如果你正在嘗試模板驅動的代碼生成,看看CodeSmith。
答:使用t4!
Visual Studio的T4代碼生成 使用微軟的T4模板語言創建模板。
問:我想爲我的應用程序生成一些代碼,Microsoft有一個代碼生成器t4。
答:微軟有一個代碼生成工具T4代表文本轉換模板工具包。
T4附帶Visual Studio 2008,或者如果您使用VS 2005,則可以下載它。
你在做什麼?你爲什麼要用XML工具而不是VS本身或像cmake或premake這樣的元生成器來創建sln文件?也許編輯你的問題,以解釋的理由,以獲得更好的答案。 – haffax 2009-07-13 23:51:31