4

GACにあるMySQLコネクタを使用する.Netプロジェクトがあります。

私のNantビルドファイルには、このdll(またはタイプ情報)を見つけるためにGACを調べるようにCSCに指示する方法がないようで、私のプロジェクトはビルドされません。

この参照が存在し、Gacに存在することをNantに伝える方法はありますか?

明らかに「システム」などのすべてのMicrosoftライブラリがGacにあり、それらを参照するものを構築するのに問題がないため、その奇妙な点があります。MysqlコネクタもGacにあることを確認しました。

ありがとう。

4

2 に答える 2

3

cscは、現在のディレクトリ、フレームワークディレクトリ、/ libスイッチに記載されているディレクトリ、LIB環境変数に記載されているディレクトリでDLLを検索します。

しかし、GACにはありません。csc /r:full_path_to_the_gac_file.dllを使用してコンパイルできます。これは機能しますが、あまりユーザーフレンドリーではありません。

.NETアセンブリは、GACとフレームワークディレクトリの2つの場所にインストールされます(これにより、アセンブリが見つかる理由が説明されます)。

必要なDLLを特定のディレクトリにコピーし、/libスイッチで参照する必要があります。もちろん、実行時に、GACから取得されます。

于 2010-03-02T13:29:36.623 に答える
0

別の(よりポータブルな)ソリューションは次のようになります。

<csc output="../bin/output.dll" target="library">
 <references>
  <include name="\%windir%\assembly\AForge.dll" />
 </references>
 <sources>
  <include name="**/*.cs" />
 </sources>
</csc>

libタグを使用して\%windir \ assemblyを検索パスに追加することもできますが、NAntのドキュメントでは非推奨とマークされています。

于 2012-05-28T12:43:50.260 に答える