我有一個在VS2013和VS2015中工作多年的設計時T4模板。在Visual Studio 2017中損壞的T4組裝指令
在VS2017中,該模板無法運行,並出現MissingMethodException。有問題的方法被安置在一個自定義組件中。該程序集使用絕對路徑以及$(SolutionDir)宏引用。例如:
<#@ assembly name="$(SolutionDir)path\my.dll"#>
我一直在使用Fusion Log Viewer來調試這個問題。顯然,找不到「my.dll」。根據日誌,Visual Studio並沒有在尋找絕對路徑。
我認爲這是T4VSHost中的一個錯誤。無論如何要解決這個問題或解決方法嗎?
作爲解決方法,我將my.dll放在$(DevEnvDir)的「我的」子目錄中。就我個人而言,我認爲這是一個不好的做法。但Fusion會以這種方式找到它。我寧願將它放在更負責任的地方,並指示Fusion在哪裏找到它。 –
可以硬編碼文件路徑嗎? – qxg
@qxg,你在暗示宏(或宏擴展)有問題嗎?顯然,這不是問題。我硬編碼的路徑來測試理論 - 不行。 –