2017-01-12 4 views
1

私はVB.NET内でT4 Templateを操作しようとしています。
テスト目的のために、Visual Studio 2015にコンソールプロジェクトを作成しました。 は、次のコードで.ttファイルを追加しました:T4 Template Linqが動作しない

<#@ template debug="true" hostspecific="true" language="VB" #> 
<#@ output extension=".vb" #> 

<#@ assembly name="System.Windows.Forms" #>  
<#@ assembly name="System.Core" #>  
<#@ assembly name="System.Xml" #>  
<#@ assembly name="System.Xml.Linq" #>  
<#@ assembly name="System.Linq" #>  
<#@ assembly name="System.Data.Linq" #> 

<#@ import namespace="System.Resources" #> 
<#@ import namespace="System.IO" #> 
<#@ import namespace="System.ComponentModel.Design" #> 
<#@ import namespace="System.Xml.Linq" #> 
<#@ import namespace="System.Text" #> 
<#@ import namespace="System.Collections.Generic" #> 
<#@ import namespace="System.Text.RegularExpressions" #> 
<#@ import namespace="System.Core" #> 
<# 
    Dim myNameSpace As String = "Errors" 
    Dim myClassName As String = "GetErrors" 
    Dim myTypeOfResourceManager As String = "[Enums].TypeOfResourceManager.Test" 
    Dim myResourcePath As String = "Resource" 

    Dim myFileName As String = "Test.resx" 
    Dim myFilePath As String = Path.Combine(Path.GetDirectoryName(Me.Host.ResolvePath("")), myResourcePath, myFileName) 
    Dim myReader= New ResXResourceReader(myFilePath) 

    myreader.UseResXDataNodes = true 
    Dim myDateTime As String = Date.Now.ToString 

    Dim myProperties As String() 
    Dim myProperty As String 

    Dim doc = XDocument.Load(myFilePath) 

    Dim myEntries = From d As XElement In doc.Root.Elements("data") 
         Select New With { 
          Key .Name = d.Attribute("name").Value, _ 
          Key .Value = d.Element("value").Value, _ 
          Key .Comment = d.Element("comment").Value} 

#> 

問題は、私は常にエラーを取得することを、次のとおりです。

https://msdn.microsoft.com/us-en/library/bb763092(v=vs.110).aspx

Severity Code Description Project File Line Suppression State Error Compiling transformation: Expression of type 'Object' is not queryable. Make sure you are not missing an assembly reference and/or namespace import for the LINQ provider.

を私はMSからこの情報を見つけましたしかし、私はすべての輸入をしました。 私は何が欠けていますか? - 助けてください - 最も興味深い事があるTHX

:私は私のプロジェクトにこのC#テンプレートをコピーすると、私はhere

からのアイデアを持っている、それが動作します。しかし、私は上記のエラーを取得する同様のVB.NETバージョンで...

答えて

1

はこれを追加:

<#@ import namespace="System.Linq" #> 

私は残りの部分は罰金だと思います。

関連する問題