0

大きなプロジェクトの一部は、再利用したい支払いシステムです。この支払いシステムのすべてのクラス ファイルを DLL にマージして、他のすべてのプロジェクトで参照として追加したいと考えています。現在の支払いシステムは、商用アプリケーションの DLL からの名前空間も使用しています (nsoftware-paypal など)。csc で個々のファイルを DLL にコンパイルしようとしましたが、うまくいきませんでした。ILMergeも試しましたが、これもうまくいかないようです。

CSC

.cs ファイルは nsoftware-Paypal の DLL の名前空間を使用するため、.cs と共に DLL ファイルを csc コマンドに含めました。「...nsoftware.InPayPal.dllはテキストファイルではなくバイナリファイルです」というエラーが表示されます。Paypal DLL なしでコンパイルしようとすると、「nsoftware という名前の型または名前空間が見つかりません」というエラーがスローされます。

ILMerge は .cs ファイルも許可しません (もちろんアセンブリではないため)。

私がする必要があるのは、このシステム全体の 1 つ (または複数) の DLL を生成して、他のプロジェクトで使用できるようにすることだけです。

可能?

4

2 に答える 2

2

csc を使用して .cs ファイルをコンパイルする必要があります。次に、ILMerge を使用して、サード パーティのアセンブリを生成されたアセンブリと結合します。

参考までに、ILMerge 用のオープン ソース GUI があり、(少なくとも最初は) 作業が少し簡単になります。

http://sourceforge.net/projects/gilma/

コンパイルの問題に関しては、このチュートリアルをチェックしてください。

コードをdllでコンパイルするには、次のようにします

csc /out:out.exe /r:third_party_dll.dll program.cs
于 2010-07-13T21:27:07.600 に答える
0

dllImport を使用する必要があります。

このサンプルコードを見てください:

http://www.adp-gmbh.ch/csharp/call_dll.html

またはこの例:

http://www.codeguru.com/csharp/csharp/cs_data/article.php/c4217

構造体を渡す必要がある場合:

http://msdn.microsoft.com/en-us/library/awbckfbz.aspx

最後に、dllImport のドキュメント:

http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.dllimportattribute.aspx

于 2010-07-14T18:03:50.483 に答える