web-dev-qa-db-ja.com

このエラーを解決するにはどうすればよいですか:インクルードファイル 'EF.Utility.CS.ttinclude'を読み込むとnullまたは空の文字列が返されました

これらのエラーを解決するにはどうすればよいですか:

  1. インクルードファイル「EF.Utility.CS.ttinclude」をロードすると、nullまたは空の文字列が返されました。
  2. 値が予想範囲内にありません。

使用ツール:VS 2012、Entity Framework 5.0.0、T4MVCExtensions 3.5.0、.NET Framework 4.5

大規模なMVCソリューション内のプロジェクトでEFおよびT4テンプレートを問題なく使用しています。さて、edmxダイアグラムを右クリックすると、EFは次のメッセージで応答します。値は期待される範囲内にありません。 EFプロジェクトをコンパイルすると、次のメッセージで応答します。

  1. インクルードファイル「EF.Utility.CS.ttinclude」をロードすると、nullまたは空の文字列が返されました。変換は実行されません。 C:\ Projects\NSAForms\NSAForms\NSAFormsEDM\NSAFormsEntities.tt
  2. ファイルのインクルードテキストの解決に失敗しました:C:\ Projects\NSAForms\NSAForms\NSAFormsEDM\EF.Utility.CS.ttinclude C:\ Projects\NSAForms\NSAForms\NSAFormsEDM\NSAFormsEntities.tt

データベース内のすべてのテーブルには主キーがあります。この問題が突然現れたのには驚かされます。誰もこの問題を解決する方法を提案していますか?

前もって感謝します、

アーノルド

27
Arnold

VS 2012では、EF.Utility.CS.ttincludeファイルは、Microsoft Web Developer Toolsまたは-の場合にのみインストールされますMicrosoft SQL Serverデータツールコンポーネントが選択されています。

27
bricelam

私は非常に似た問題を抱えていたので、VS2012とVS2013で試しました。

Entity Framework 6 Tools for Visual Studio 2012を再インストールした後 http://www.Microsoft.com/en-us/download/confirmation.aspx?id=40762 すべてが正常に戻りました。

70
odesuk

Visual Studio 2012のEntity Framework 6ツールの再インストール http://www.Microsoft.com/en-us/download/confirmation.aspx?id=40762 work for me

5
Alexandre

VS2017では、EF6.Utility.CS.ttincludeをモデルのフォルダーに追加しました。これでMySqlとEFの問題が解決しました。

ファイルが見つかりました:C:\ Program Files(x86)\ Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Entity Framework Tools\Templates\Includes\EF6.Utility.CS.ttinclude

[〜#〜] update [〜#〜]上記を回避するために、エンティティを完全に削除してから追加し直すと問題が修正されました。

1
Spencer

Visual Studio 2017

テストプロジェクトでのみ同じエラーが発生していました。テストプロジェクトとそのファイルを正常に参照している他のプロジェクトを確認した後、失敗したプロジェクトのapp.configに次を追加すると問題が解決したことがわかりました

  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.Microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="mssqllocaldb" />
      </parameters>
    </defaultConnectionFactory>
  <connectionStrings>
0
workabyte

私の場合、問題の原因は奇妙なフォルダー名(スペースではなく%20)でした。 %20の代わりにスペースを使用して同じフォルダーにディレクトリジャンクションを作成したところ、問題が解決しました。

ジャンクションの作成に使用したPowerShellコマンドは次のとおりです。

cd "c:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\Extensions\Microsoft\"
mklink /j "Entity Framework Tools" "Entity%20Framework%20Tools"
Junction created for Entity Framework Tools <<===>> Entity%20Framework%20Tools

その後、lsを使用してディレクトリの内容を見ると、次の2行が表示されます(簡潔にするために編集されています)。

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
...
d----l        2/27/2019   9:57 AM                Entity Framework Tools
d-----        2/26/2019  12:24 PM                Entity%20Framework%20Tools
...

モードでは、lは「リンク」(別名ジャンクション)であることを示し、dはそれがディレクトリであることを示します。フォルダーの名前を変更する代わりにジャンクションを作成することにより、両方のディレクトリ名が常に機能することを確認できます。

0
QuickDanger

Professionalでこの機能が既に機能している後、VS2017 Enterpriseを最近インストールしたときにこの問題が発生しました。
解決策は次のとおりです。

  1. Visual Studio Installerプログラムを開き、エンタープライズインストールを「変更」します。
  2. [Webとクラウド]セクションで[ASP.NETとWeb開発]を選択します
  3. 右下の[変更]をクリックします enter image description here

おそらくEF6が既にインストールされており、これを機能させるために再インストールする必要がないことに注意する価値があります。

これらの手順を完了してVisual Studioを起動すると、エラーはなくなり、クラスを正常に生成することができました。お役に立てれば!

0
EJay

上記のすべてのソリューションが機能しなかったため、新しいプロジェクトを作成して問題が解決するかどうかを確認しましたが、新しく作成したプロジェクトでエラーは発生しませんでした。次に、プロジェクトを古いバックアップと比較して、最近行われた変更を確認し、問題を見つけました。私は最近パッケージClarius.TransformOnBuildをアップグレードしましたパッケージをダウングレードした後、より新しいバージョンにエラーがなくなりました。

0
irfandar