最近公司的工作流产品Procez One添加了对VS2010的支持,在制作新版安装包的过程中,我遇到了一些工程模板上的问题。

  由于Procez One同时支持VS2008和VS2010,所以我直接使用了同一批模板,这里以数据库工程模板为例:WorkflowAppDatabase.zip,这是支持SQL Server 2005+的模板,用于创建Procez One所需要的数据库结构。这些模板随流程设计器一起,采用VS扩展的方式,部署在VS2010的Extensions目录中(比如:C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Extensions)。

  在部署过程中,问题来了,VS2010的新建工程死活认不出这个数据库工程。通过与SQL Server 2008自身的工程模板进行仔细的对比,模板应该没问题啊!经过多次尝试,我将目光投向VS2010的新建工程类型,注意到数据库工程类型是“Database”,而不是使用SQL Server的“Database Projects”,改之,问题解决。(即使将SQL Server自身的模板打包放到扩展目录下,这样的模板VS2010也认不出的)

 

  然后,打开出现了的工程模板,失败,文件丢失。注意到VS2010将工程模板解析到同目录下的~PC中,通过对比原始zip包,发现解析出的文件名有问题,不少被截断了。

 

  一开始我百思不得其解,后来尝试直接改成正确的文件名,发现改不了,原来文件名过长,囧。这个问题实在没有好的解决办法,因为VS2010的Extensions目录本身就很长,扩展的目录再加上解析出来的工程目录(例如:C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\Bingosoft\Bingosoft Workflow Designer\4.0\~PC\ProjectTemplates\Database\WorkflowAppDatabase.zip\……),很容易就超长了(260byte)。