объединить DLL файлы .cs - PullRequest
0 голосов
/ 14 июля 2010

Часть большого проекта - это платежная система, которую я хотел бы использовать повторно.Я хочу объединить все файлы классов этой платежной системы в библиотеки DLL, чтобы добавить их в качестве ссылки во все другие проекты.Настоящая платежная система также использует пространства имен из библиотек DLL коммерческого приложения (nsoftware-paypal и несколько других).Я попытался csc собрать отдельные файлы в DLL, но не смог заставить его работать.Я также попробовал ILMerge , но, похоже, это тоже не работает.

CSC

Поскольку в файлах .cs используются пространства имен из DLL-файлов nsoftware-Paypal, я включилDLL-файлы вместе с .cs в команде csc.он дает мне ошибку, говоря: «... nsoftware.InPayPal.dll - это двоичный файл, а не текстовый файл».Когда я пытаюсь скомпилировать без библиотек PayPal, он выдает ошибку «Тип или пространство имен с именем nsoftware отсутствует».

ILMerge также не разрешает файлы .cs (поскольку это, конечно, не сборка).

Все, что мне нужно сделать, - это сгенерировать одну (или более) DLL для всей этой системы, чтобы я мог использовать ее в других проектах.

Возможно?

Ответы [ 2 ]

2 голосов
/ 14 июля 2010

вам нужно скомпилировать ваши файлы .cs с помощью csc, а затем использовать ILMerge для объединения сторонних сборок с созданной сборкой.

Кстати, для ILMerge есть графический интерфейс с открытым исходным кодом, который может немного облегчить задачу (по крайней мере, на первый взгляд).

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

Что касается проблем с компиляцией, вы можете проверить это руководство

чтобы скомпилировать ваш код с помощью dll, сделайте что-то вроде этого

csc /out:out.exe /r:third_party_dll.dll program.cs
0 голосов
/ 14 июля 2010

Вам нужно использовать 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

...