我们到现在为止已经对Vs.net dsl的基础知识进行了介绍,并且一步一步的完成了我们的状态机设计器的设计,在上一节结合T4模板生成了代码.但是我们一直还是在调试的项目中来做的, 怎么能够让我们做的这个状态机设计器能够提供给其它人使用呢,在这一节,我们就来做一个安装程序,这样在只安装了VS.NET的机器上,不用安装SDK就可以使用我们的设计器了.
VS.NET DSL专门提供了针对DSL的安装项目,我们直接基于这个项目来制作我们的安装程序:
1.首先,向我们的解决方案中添加一个Dsl 安装项目,从项目类型中选择Extensibility—Domain Specific Language Setup:
2. 我们可以看到在生成的项目中, 还是由很多tt文件, 其实dsl的安装是基于开源项目wix,不过在一般情况下,我们不需要手动去修改wix文件,不过如果一旦有特殊的需求,现有的这种机制是很难满足的. 我们来介绍一下这种安装机制:
当我们向这个解决方案中添加DSL setup项目时,它会自动的寻找Dsl项目和DslPackage项目,并自动添加对这两个项目的引用,然后根据这两个项目中生成自己的元数据文件 InstallerDefinition.dslsetup,我们来看一下这个文件:
<installerDefinition xmlns="http://schemas.microsoft.com/VisualStudio/2005/DslTools/InstallerDefinitionModel" productUrl="InsertProductUrlHere" defaultDirectoryName="LanguageSm" productVersion="1.0.0" requiresCSharp="true" requiresVisualBasic="true" productCode="326b807c-a6da-43ac-9d29-f75cf060622a" upgradeCode="cc04b782-48c3-49c5-a60e-eda39258bfaa" localeId="1033"> <dslPackage name="LanguageSm" project="DslPackage" assemblyPath="Company.LanguageSm.DslPackage.dll" registryRoot="SOFTWARE\Microsoft\VisualStudio\9.0"> <fileExtensions> <fileExtension name="mydsl5" extension="mydsl5" descriptionKey="FileDescription" hasIcon="true" iconId="0"/> </fileExtensions> <supportingAssemblies> <supportingAssembly name="Dsl" project="Dsl" assemblyPath="Company.LanguageSm.Dsl.dll"/> </supportingAssemblies> </dslPackage> <licenseAgreement filePath="Files\EULA.rtf" isEmbedded="true" /> <supportingFiles> <supportingFile name="Readme" filePath="Files\Readme.htm" installShortcut="true" shortcutIconPath="Resources\ReadmeShortcut.ico" openAfterInstall="true" /> </supportingFiles> <vsItemTemplates> <vsItemTemplate localeId="1033" targetDirectories="CSharp" project="DslPackage" templatePath="CSharp\1033\LanguageSm.zip"/> <vsItemTemplate localeId="1033" targetDirectories="VisualBasic" project="DslPackage" templatePath="VisualBasic\1033\LanguageSm.zip"/> </vsItemTemplates> <dslSchemas> <dslSchema project="Dsl" filePath="GeneratedCode\LanguageSmSchema.xsd"/> </dslSchemas> </installerDefinition>
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索设计
, 文件
, wix
, 程序
, 项目
, dsl
生成
visual studio 入门、visualstudio2008入门、visual studio入门pdf、visualstudio2015入门、visual studio 入门书,以便于您获取更多的相关知识。