CodeSmith介绍和常见问题解决方案

Posted cheng2015

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CodeSmith介绍和常见问题解决方案相关的知识,希望对你有一定的参考价值。

一、CodeSmith介绍

      CodeSmith模板代码生成实战详解  https://www.cnblogs.com/knowledgesea/p/5016077.html

二、CodeSmith连接不上mysql解决方法

在codesmith中选择MySQLSchemaProvider并连接数据库时,会报以下错误:

Test failed.  找不到请求的 .Net Framework 数据提供程序。可能没有安装。

   

1.如果你安装了mysql-connector-net 那么你就进安装路径里面找到 MySql.Data.dll;如果没有,访问http://dev.mysql.com/downloads/connector/net/,下载并安装mysql-connector-net-x.x.x.msi。其中x.x.x是版本号,直接下载最新版即可。

2.复制"MySql.Data.dll"到X:XXCodeSmithv*.*SchemaProviders目录下和Codesmith的Bin目录下。

3.修改CodeSmith.exe.config,添加mysql的DbProviderFactories配置(注意版本号和PublicKeyToken要与上面的MySql.Data.dll保持一致),下面以版本6.7.4.0为例,修改的CodeSmith.exe.config的配置全部代码如下;保存CodeSmith.exe.config 重新打开CodeSmith.exe 完美运行。

技术分享图片
<?xml version="1.0"?>
<configuration>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  </startup>
    <system.data>
        <DbProviderFactories>
            <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.7.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
        </DbProviderFactories>
    </system.data>
  <system.diagnostics>
    <switches>
      <add name="CodeSmithSwitch" value="4" />
    </switches>
  </system.diagnostics>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <probing privatePath="bin;AddIns;SchemaProviders"/>
    </assemblyBinding>
  </runtime>
</configuration>
技术分享图片

附上a/MySql.Data.dll(版本6.7.4.0)链接:点击下载

       b、利用VS自带的命令行工具查看和生产PublicKeyToken:https://blog.csdn.net/kuui_chiu/article/details/6914049      

二、CodeSmith使用

      连接字符串   

       ACCESS数据库

         1:CodeSmith选中链接类型是:ADOXSchema
          2:无密码的Access链接为:
                Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:hhdb.mdb;
          3:有密码的Access链接:
                Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:hhdb.mdb;
                Jet OLEDB:Database Password=1111

       Sql数据库

                server=192.1.1.14;User ID=test;Password=test;database=test;
                Pooling=TRUE;Max Pool Size=1000;Connection Reset=FALSE

         Oracle数据库
               1:下载提供的ORACAL 驱动
               2:Data Source=192.1.1.14;Data Source=test;Password=test;User ID=test

         MySql数据库

                   Database=test;Data Source=127.0.0.1;User Id=root;Password=password;port=3306

     

          CodeSmith自己动手写模板    https://www.cnblogs.com/sunniest/p/4128183.html

       CodeSmith无法获取MySQL表及列Description说明注释的解决方案

            https://blog.csdn.net/nihaoapengyou/article/details/52587986

            https://www.cnblogs.com/xinzheng/p/5809766.html










以上是关于CodeSmith介绍和常见问题解决方案的主要内容,如果未能解决你的问题,请参考以下文章

使用codesmith无法连接mysql问题

完美解决CodeSmith无法获取MySQL表及列Description说明注释的方案

CodeSmith 简单使用和常用模板

CodeSmith 基本语法

CodeSmith Merge策略--小白教程

解决CodeSmith无法获取MySQL表及列Description说明注释的方案