Visual studio 是否可以使用StylusStudio生成Visual Studio解决方案文件?
我想知道是否有可能生成某种模板,我用手写笔给它一个xml或xsl文件并生成c#代码 我制作了一些.cs文件,效果很好,但我无法使用csproj和sln文件 所以,这就是我问的原因 我曾经在c#上编程DLLVisual studio 是否可以使用StylusStudio生成Visual Studio解决方案文件?,visual-studio,projects-and-solutions,solution,Visual Studio,Projects And Solutions,Solution,我想知道是否有可能生成某种模板,我用手写笔给它一个xml或xsl文件并生成c#代码 我制作了一些.cs文件,效果很好,但我无法使用csproj和sln文件 所以,这就是我问的原因 我曾经在c#上编程DLL 是一个n层编程Visual Studio解决方案文件不是XML,所以我不希望Stylus Studio对它们做太多的处理 解决方案文件的片段: Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio
是一个n层编程Visual Studio解决方案文件不是XML,所以我不希望Stylus Studio对它们做太多的处理 解决方案文件的片段: 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 Microsoft Visual Studio解决方案文件,格式版本10.00 #Visual Studio 2008 项目({FAE04EC0-301F-11D3-BF4B-00C04F79EFBC})=“HttpsUrlWithPort”、“HttpsUrlWithPort\HttpsUrlWithPort.csproj”、“{9FD67B56-9D49-4989-89D0-06A29CAA5A3}” 末端工程 ,您最好使用记事本,但如果您不想投资许可证,可以使用记事本创建多种类型的解决方案。如果您试图进行模板驱动的代码生成,请看一看。包括XSLT和XQuery,并且您可以使用其中任何一种编写文本文件。因此,如果有合适的源代码,您可以手动编写
.sln
文件,因为.sln
文件不是XML。项目文件,如.vbproj
或.csproj
,都是XML,可以通过Stylus Studio轻松创建
这就是你要问的吗
如果有XSLT或XQuery程序,可以选择生成代码来驱动转换。它将为您创建一个VisualStudio项目。对于XQuery,它将使用.Net Saxon XQuery引擎。对于XSLT,支持几种不同的.Net XSLT引擎
使用“XQuery>生成代码>生成C#代码…”或“XSLT>生成代码>生成C#代码…”选项实际创建代码和助理.sln
文件
但是,如果出于某种原因确实希望在StylusStudio内部使用XSLT创建.sln文件,那么下面是您可以使用的方法
示例输入文件:
FAE04EC0-301F-11D3-BF4B-00C04F79EFBC
监察人
DB3B37-100C-40DD-B154-153E3F3A68FF
从上面的.xml
创建.sln
的示例XSLT文件:
<?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>
;
Microsoft Visual Studio解决方案文件,格式版本10.00
;
#Visual Studio 2008
;
全球
;
GlobalSection(SolutionConfigurationPlatform)=预解和xD
;
Debug | Any CPU=Debug | Any CPU
;
Release | Any CPU=Release | Any CPU
;
EndGlobalSection
;
GlobalSection(ProjectConfigurationPlatform)=后期解决方案和#xD
;
EndGlobalSection
;
全局剖分(SolutionProperties)=预解和#xD
;
HideSolutionNode=FALSE
;
EndGlobalSection
;
EndGlobal&xD
;
项目(“{”
}") = "
", "
\
.csproj“{
}“
;
;
EndProject
;
;
{
}.Debug | Any CPU.ActiveCfg=Debug | Any CPU
;
;
{
}.Debug | Any CPU.Build.0=Debug | Any CPU
;
;
{
}.Release | Any CPU.ActiveCfg=Release | Any CPU
;
;
{
}.Release | Any CPU.Build.0=Release | Any CPU
;
;
A:使用t4
Visual Studio的T4代码生成
使用Microsoft的T4模板语言创建模板
问:我想为我的应用程序生成一些代码,微软有一个代码生成器t4
答:微软有一个代码生成工具T4,它代表文本转换模板工具包
T4随Visual Studio 2008提供,如果您使用的是VS 2005,您也可以下载它。我不确定StylusStudio是什么,但我相信Visual Studio解决方案文件是XML格式的。@NotDan:您正在考虑项目文件。您的目的是什么?为什么要使用XML工具而不是VS本身或me来创建sln文件像cmake或premake这样的助教构建者?也许可以编辑您的问题,以解释理由,从而获得更好的答案。