2016-09-02 10 views
3

t4テンプレートエンジンを使用しようとしましたが、名前空間ブロック内にusingディレクティブが自動的に含まれています。独自のMyProject.System名前空間が設定されている親の名前空間内を検索するため、Systemという名前空間を見つけることができません。T4ネームスペースの外側を使用するテンプレートの場所

フォルダ/名前空間の構造

  • MyFolderという
  • OtherFolder
  • システム

テンプレートファイル

<#@ template language="C#" #> 
<#@ assembly name="System.Core" #> 
<#@ import namespace="System" #> 
<#@ import namespace="System.Linq" #> 
<#@ import namespace="System.Text" #> 
<#@ import namespace="System.Collections.Generic" #> 
<div>Test</div> 

CSファイル

namespace MyProject.MyFolder.Templates 
{ 
    using System; 
    using System.Linq; 
    using System.Text; 
    using System.Collections.Generic; 
} 

エラー

名前空間LinqMyProject.Systemでは見つかりませんでした。

質問

どのように私は名前空間のブロックの外で使用して置くために、T4を強制できますか?

+0

出力を作成しているテンプレートを含めることはできますか? – rmc00

+0

私はそれを追加しました。今のところ、問題を解決した 'System'名前空間の名前を変更しました。 – djmj

答えて

0

System.Linqをこのような非相対的な方法で参照できます。

using global::System.Linq; 

これは便利な方法です。

+0

c#コードはテンプレート自体によって生成されます。私は今、 'System'名前空間の名前を変更しました。 – djmj

+0

'<#@ import namespace =" global :: System "#>'を試しましたか?それがうまくいくかどうかを知ることに興味があります。 –

関連する問題