2011-10-13 76 views
0

想使用bltoolkit,T4模板和postgreSQL來生成我的數據層。我收到運行我的T4模板例外的基礎上,一個由documentation建議:BLToolkit + T4代+ PostgreSQL數據庫,可能嗎?

Error 5 Running transformation: System.ArgumentNullException: Value cannot be null. 
Parameter name: type, at System.Activator.CreateInstance(Type type, Boolean nonPublic) 
(...) 

在VSNET08工作,所有的圖書館參考,連接MSSQL工作正常,起初,一切似乎是正確的,但我留下點什麼......

這是我.TT模板:

<#@ template language="C#v3.5" hostspecific="True" #> 
<#@ output extension=".generated.cs" #> 
<#@ include file="BLToolkit.ttinclude" #> 
<#@ include file="PostgreSQL.ttinclude" #> 
<#@ include file="PluralSingular.ttinclude" #> 
<# 
    ConnectionString = "<connection string to postgresql database"; 
    DataProviderAssembly = @"..\References\Npgsql.dll"; 
    GenerateModel(); 
#> 

回答

1

最有可能的T4找不到Npgsql.dll。 T4正在運行時,當前目錄不是您的項目位置。所以你應該嘗試完整的路徑。

另一個問題是依賴程序集。將以下內容添加到您的模板中:

System.Reflection.Assembly.LoadFile(@"...PostgreSqlLocation...\Mono.Security.dll"); 
+0

解決了更新Postgresql .Net驅動程序的問題。 T4是一個很好的工具,但有時很難得到詳細的錯誤信息... – MoveTheBits