Visual Studio DSL 入门14---用Wix制作安装程序

我们到现在为止已经对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 入门书,以便于您获取更多的相关知识。

时间: 2025-01-27 03:19:53

Visual Studio DSL 入门14---用Wix制作安装程序的相关文章

Visual Studio DSL入门系列

Visual Studio DSL 入门 11---为状态机设计器添加规则 Visual Studio DSL 入门14---用Wix制作安装程序 Visual Studio DSL 入门 13---结合T4生成代码 Visual Studio DSL 入门 12---状态机设计器的规则(Rule)和验证(V Visual Studio DSL入门 10---完善状态机案例 Visual Studio DSL入门 9---创建状态机的图形符号 Visual Studio DSL入门 8---创建

Wix打包系列(一)如何使用wix制作安装程序

原文:Wix打包系列(一)如何使用wix制作安装程序     最近由于项目需要,需要给客户制作安装程序,一开始使用vs2005自带的打包工程来打包,但用了一段时间发现vs打包太死板,而且使用起来问题很多.收费的商业打包工具不在我考虑范围内,于是在网上找到了wix,稍微了解了下,发现wix的确可以满足我的需求:但是网上wix中文的资料少的可怜,百度,google上搜索到关于wix中文的资料少的可怜,有的只是一些简单的应用,还不足以满足我的要求:没办法,只能靠自己了,还好项目不是很急,于是开始花时间

Visual Studio DSL 入门 2

相信如果看过一上篇你已经对vs.net dsl有了一定的了解,接下来我们就来开始我们的这个系列的入门,Vs.net Dsl在国内可能使用的人少之又少,不过希望这个系列能够使看到的人能够对dsl有一定的了解,使之能够成为产品方案选型时的一个参考,能够对阅读的人有所帮助. 准备环境     由于vs.net 2010并未正式发布,所以这一系列基于vs 2008 sp1进行开发,Dsl tools是包含在VSX当中的,所以需要下载 Vistual Stutio.Net SDK 1.1安装,下载地址为:

艾伟_转载:Visual Studio DSL 入门 2

     相信如果看过一上篇你已经对vs.net dsl有了一定的了解,接下来我们就来开始我们的这个系列的入门,Vs.net Dsl在国内可能使用的人少之又少,不过希望这个系列能够使看到的人能够对dsl有一定的了解,使之能够成为产品方案选型时的一个参考,能够对阅读的人有所帮助. 准备环境     由于vs.net 2010并未正式发布,所以这一系列基于vs 2008 sp1进行开发,Dsl tools是包含在VSX当中的,所以需要下载 Vistual Stutio.Net SDK 1.1安装,下

一起谈.NET技术,Visual Studio DSL 入门 1

什么是特定领域开发和DSL      特定领域开发是用来解决重复发生的问题的方法,针对每次发生的问题,通过进行总结和分析,他们之间相同的方面可以一次性的解决.而经常变化的方面,可以采用一种特殊的语言表达.针对这个特殊语言,我们可以建立模型或者表达式,然后插入到固定部分.       对于我们软件行业的解决方案来说,固定部分一般采用传统的设计和实现方式,可以为框架,平台,解释器或者编程接口.提供可扩展性,具有高度的抽象性和可复用性.而特定领域语言专门用来创建变化的部分,从而使整个解决方案可具有可应

一起谈.NET技术,Visual Studio DSL 入门 3---创建一个简单的DSL模型

     从这节开始我们就开始我们的DSL之旅, 首先确保你已经安装了Visual Studio Sdk,并且使用的是Visual Studio 2008.我们先大概创建一个简单的DSL项目,通过这个项目来了解dsl的开发环境和流程. 1. 打开VS.NET ,新建--项目, 点击其它项目类型--扩展性(Extensibility). 这里列出来了vs.net扩展类型的项目,包括Addin,VSPackage,Dsl等项目类型,选择"Domain Specific Lan  guage Desi

Visual Studio DSL 入门 3---创建一个简单的DSL模型

从这节开始我们就开始我们的DSL之旅, 首先确保你已经安装了Visual Studio Sdk,并且使用的是Visual Studio 2008.我们先大概创建一个简单的DSL项目,通过这个项目来了解dsl的开发环境和流程. 1. 打开VS.NET ,新建--项目, 点击其它项目类型--扩展性(Extensibility). 这里列出来了vs.net扩展类型的项目,包括Addin,VSPackage,Dsl等项目类型,选择"Domain Specific Lan  guage Designer&

Visual Studio DSL入门 2 --- 需求

相信如果看过一上篇你已经对vs.net dsl有了一定的了解,接下来我们就来开始我们的这个系列的入门,Vs.net Dsl在国内可能使用的人少之又少,不过希望这个系列能够使看到的人能够对dsl有一定的了解,使之能够成为产品方案选型时的一个参考,能够对阅读的人有所帮助. 准备环境 由于vs.net 2010并未正式发布,所以这一系列基于vs 2008 sp1进行开发,Dsl tools是包含在VSX当中的,所以需要下载 Vistual Stutio.Net SDK 1.1安装,下载地址为:http

Visual Studio DSL 入门 12---状态机设计器的规则(Rule)和验证(Validation)

上一节我们为状态机设计器添加了一个Rule,主要用来处理当Transition的属性 Label,Condition,Action,Event之间的任何一个值发生变化时,其余的属性值也要按照我们 的规则来更新(我们的Label属性就是一个辅助的属性,用来更好的显示和编辑另外三个属性). 我们可以看到vs.net dsl提供的Rule机制的强大,它主要提供了以下几个Rule: AddRule:当ModelElement或者ElementLink添加时触发 ChangeRule:当一个元素或者关系的