私はVS2013とVS2015で長年働いていた設計時のT4テンプレートを持っています。Visual Studio 2017でT4アセンブリディレクティブが破損しました
VS2017では、テンプレートがMissingMethodExceptionで実行されません。問題の方法は、カスタムアセンブリ内に格納されています。アセンブリは、$(SolutionDir)マクロとともに絶対パスを使用して参照されます。何かが好きです:
<#@ assembly name="$(SolutionDir)path\my.dll"#>
私はこの問題をデバッグするためにFusion Log Viewerを使用しています。どうやら、 "my.dll"が見つかりません。また、ログによると、Visual Studioは絶対パスを調べていません。
私はこれがT4VSHost内のバグだと考えます。とにかくこれを修正するか回避する方法はありますか?
回避策として、私は$(DevEnvDir)の "my"サブディレクトリにmy.dllを配置します。個人的には、これは悪い習慣だと私は思う。しかし、フュージョンはそれをこのように見つけるでしょう。私はそれをより責任ある場所に置き、Fusionにどこにそれを見つけるよう指示するのが好きです。 –
ファイルパスの作業をハードコーディングできますか? – qxg
@qxg、マクロ(またはマクロ展開)に何か問題があるとお考えですか?明らかに、それは問題ではありません。理論をテストするためにパスをハードコーディングしました。 –