【问题标题】:T4 Template Linq not workingT4 模板 Linq 不工作
【发布时间】:2017-01-12 11:56:53
【问题描述】:

我尝试在 VB.NET 中使用 T4 模板。
出于测试目的,我在Visual Studio 2015 中创建了一个控制台项目。 并添加了一个.tt 文件,代码如下:

    <#@ 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}

#>

问题是,我总是得到错误:

严重性代码描述项目文件行抑制状态 错误编译转换:“对象”类型的表达式不是 可查询。确保您没有遗漏装配参考和/或 LINQ 提供程序的命名空间导入。

我从 MS 那里找到了以下信息:

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

但我做了所有的导入。 我错过了什么? - 请帮助 - THX

最有趣的是:我的想法来自here

当我将此C# 模板复制到我的项目中时,它可以工作。但是使用类似的VB.NET 版本我得到了上述错误......

【问题讨论】:

    标签: .net vb.net linq t4


    【解决方案1】:

    添加这个:

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

    我认为其余的都很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-07
      • 1970-01-01
      • 2021-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多