1

次のコマンドでバッチ ファイルを使用して、その場で C# コードを正常にコンパイルし、結果の exe を実行し、exe を破棄しています。

start /wait C:\WINDOWS\Microsoft.NET\Framework\v3.5\csc.exe /out:PostillionOutgoing.exe PostillionOutgoing.cs  /reference:AlexPilotti.FTPS.Client.dll
call  SetupCI.bat
start /wait PostillionOutgoing.exe
del PostillionOutgoing.exe

それはまさに私が望んでいた方法で動作します。ファイルAlexPilotti.FTPS.Client.dllは、.cs ファイルと同じフォルダーに存在します。

アセンブリAlexPilotti.FTPS.Client.dllは、他の多くの同様のアプリケーションでも必要です。私の質問は、上記のすべてのバッチ スクリプトがこの DLL を見つけられるように、この DLL を保持できる集中化された場所があるかということです。このようにして、この DLL のコピーをすべての個別のフォルダーに保持する必要がなくなります。

DLL を GAC に配置したくありません。system32 フォルダーでも試しましたが、機能しませんでした。

4

2 に答える 2

1

ドキュメントによると、ランタイムがアセンブリをプローブするときに使用する固定の場所はありません(つまり、アセンブリをまだ見つけることができなかったためにディレクトリを調べるとき)。

ただし、アセンブリに厳密な名前が付けられている場合は、の<codeBase>構成要素を使用しapp.configて、ランタイムを任意のパスに転送できます。

アセンブリに厳密な名前が付けられておらず、使用したくない場合はapp.config、残念ながらオプションがありません。

于 2013-02-27T13:16:22.577 に答える
1

/ libコマンドラインを使用して、参照用の検索フォルダーを指定できます

ここでmsdnのドキュメントを参照してくださいhttp://msdn.microsoft.com/en-us/library/vstudio/s5bac5fx.aspx

于 2013-02-27T13:17:36.747 に答える