2010-07-13 3 views
0

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

CSC

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

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

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

Возможно?

ответ

2

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

У fyi есть открытый gui для ILMerge, который может сделать вещи немного проще (по крайней мере сначала).

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

Что касается ваших вопросов компиляции вы можете проверить это tutorial

для того, чтобы скомпилировать код с DLL сделать что-то вроде этого

csc /out:out.exe /r:third_party_dll.dll program.cs 
+0

Да, но есть проблема с зависимостью, если я пытаюсь скомпилировать все мои файлы .cs с помощью csc. – Hadesara

+0

Можете ли вы опубликовать ошибку компилятора? это звучит как другая проблема ... – luke

+0

Я снова написал все описание. Было бы очень полезно помочь. – Hadesara

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

И Finaly документация для DllImport:

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

+0

Спасибо Квону. Также проверю. – Hadesara

Смежные вопросы