Можно ли создавать файлы решения Visual Studio с помощью StylusStudio? - PullRequest
0 голосов
/ 14 июля 2009

Мне было интересно, можно ли сгенерировать какой-то шаблон, который я дам в xml или xsl-файле в стилусе и сгенерирую код c #

Я сделал несколько .cs и работает нормально, но я не смог с файлами csproj и sln,

так вот почему я спрашиваю

я раньше программировал dll на c # такое n-уровневое программирование

Ответы [ 4 ]

1 голос
/ 14 июля 2009

Джон прав: , вам лучше использовать блокнот, но есть бесплатная версия Visual Studio 2008 , которую можно использовать для создания многих типов решений, если вы не хочу вкладывать деньги в лицензию Если вы пытаетесь сгенерировать код на основе шаблонов, взгляните на CodeSmith .

1 голос
/ 14 июля 2009

Stylus Studio включает в себя XSLT и XQuery, и с любым из них вы можете писать текстовые файлы. Таким образом, вы можете вручную написать файл .sln, если у вас есть правильный источник - потому что файлы .sln не являются XML. Файлы проекта, такие как .vbproj или .csproj, представляют собой XML и могут быть легко созданы Stylus Studio.

Это то, что вы спрашиваете?

Если у вас есть программа XSLT или XQuery, вы можете сгенерировать код для преобразования. Это создаст проект Visual Studio для вас. Для XQuery он будет использовать .Net Saxon XQuery engine. Для XSLT поддерживаются несколько различных механизмов XSLT для .Net.

Используйте параметры "XQuery> Создать код> Создать код C # ..." или "XSLT> Создать код> Создать код C # ...", чтобы фактически создать код и файл .sln оператора.

Если, тем не менее, по какой-то причине вы хотите использовать XSLT внутри Stylus Studio для создания файла .sln, вот как можно это сделать.

Пример входного файла: FAE04EC0-301F-11D3-BF4B-00C04F79EFBC Сторожевая собака DB3FBB37-100C-40DD-B154-153E3F3A68FF

Пример файла XSLT для создания .sln сверху .xml:

<?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 голосов
/ 27 февраля 2010

A: используйте t4!

Генерация кода в Visual Studio T4 создавать шаблоны с использованием языка шаблонов Microsoft T4.

В: Я хочу сгенерировать часть кода для своего приложения, и у Microsoft есть генератор кода, t4.

A: У Microsoft есть инструмент для генерации кода T4, который обозначает Text Transformation Templating Toolkit.

T4 поставляется с Visual Studio 2008, или вы можете загрузить его, если используете VS 2005.

0 голосов
/ 14 июля 2009

Файлы решений 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...