[英]T4 templates error: loading the include file ef.utility.cs.ttinclude returned a null or empty string
[英]EF6 / Cannot build project with auto-generated *.tt files (“Failed to resolve include text for file:…\EF6.Utility.CS.ttinclude.”)
我使用在Visual Studio 2017 Enterprise中創建的Entity Framework 6得到了一個簡單的CRUD應用程序。 使用*.edmx
創建架構/模型/數據庫內容
在嘗試構建/重建克隆reposiroty到另一台計算機(或刪除所有自動生成的*.cs
文件)之后,對於每個*.tt
文件,我得到以下錯誤:
Failed to resolve include text for file:[PATH TO APP DIRECTORY HERE]\\EF6.Utility.CS.ttinclude.
Loading the include file 'EF6.Utility.CS.ttinclude' returned a null or empty string. The transformation will not be run.
手動重新生成文件效果很好 (通過打開*.tt
文件上的彈出菜單,然后單擊Run Custom Tool
)
該文件存在於
C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Enterprise\\Common7\\IDE\\Extensions\\Microsoft\\Entity Framework Tools\\Templates\\Includes\\EF6.Utility.CS.ttinclude
但是我完全不知道為什么VS在項目路徑中尋找它。
是VS / EF6配置的錯誤/問題嗎?
我試過了:
這些都沒有幫助:(
類似線程:
如何解決此錯誤:加載包含文件'EF.Utility.CS.ttinclude'返回的字符串為空或空
在自動生成的*.tt
文件中硬編碼正確的路徑IMO不是正確的解決方案
在遵循Microsoft指南之后 ,我添加了“ IncludeFolders”標記來解析“ EF6.Utility.CS.ttinclude”和“ ItemGroup”以使模板處理中的DevEnvDir無效。 .csproj文件的外觀如下:
...
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">15.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
<TransformOnBuild>True</TransformOnBuild>
<TransformOutOfDateOnly>false</TransformOutOfDateOnly>
<IncludeFolders>$(DevEnvDir)Extensions\Microsoft\Entity Framework Tools\Templates\Includes</IncludeFolders>
</PropertyGroup>
<ItemGroup>
<T4ParameterValues Include="DevEnvDir">
<Value>$(DevEnvDir)</Value>
<Visible>False</Visible>
</T4ParameterValues>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="$(VSToolsPath)\TextTemplating\Microsoft.TextTemplating.targets" />
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.