1

私のt4テンプレートファイルには、ビルドモードで間違いなく壊れてしまう次の行があります。

<#@アセンブリ名= "$(SolutionDir)\ MYNAMESPACE.MYLIBRARY \ bin \ debug \ MYLIBRARY.dll">#>

asp.net Webプロジェクトからこのテンプレートを実行するには、上記のパスにbin\debugをハードコーディングする必要があります。

もともと私は次の行を持っていました、

<#@アセンブリ名= "$(SolutionDir)\ MYNAMESPACE.MYLIBRARY \ $(OutDir)\ MYLIBRARY.dll"

>>

しかし、私のWebプロジェクトのアウトパスがbin \フォルダーであり、 bin \debugフォルダーではなくbinフォルダーでMYLIBRARY.DLLを探し続けたため、 (OutDir)を使用しても機能しませんでした。次のエラーが発生しました。

変換のコンパイル:メタデータファイルmynamespace.mylibrary \ bin \mylibrary.dll'が見つかりませんでした

Webプロジェクトの出力パスプロパティをbin\ではなくbin\debugに更新できません。これは、記事で説明されているようにWebプロジェクトが実行されないためです。

Q..t4テンプレートファイルのハードコードされたbin\debugパスを削除するにはどうすればよいですか?

4

2 に答える 2

2

プロジェクトまたはビルド構成に関係なく、ProjectDir変数とOutputPath変数を使用してこれを実行できます。

<#@ assembly name="$(ProjectDir)$(OutputPath)MyLibrary.dll" #>

于 2015-02-18T19:36:06.217 に答える
1

t4テンプレートファイルの最初の行を次のように更新しました。

<#@アセンブリ名= "$(SolutionDir)\ MyNameSpace.MyLibrary \ bin \ $(ConfigurationName)\ MyLibrary.dll"

>>

t4テンプレートは、デバッグモードでソフトウェアを開発しているときにのみ実行され、クラスの生成に使用しているため、bin\debugとしてハードコーディングすることもできます。クラスがt4テンプレートを使用して生成されると、そのクラスはチェックインされ、マシンを構築するためにデプロイする準備が整います。

于 2013-01-12T00:38:45.040 に答える