С# с использованием другого кода
Iv'e загрузил класс класса коллекции деревьев интервала С# отсюда http://intervaltree.codeplex.com/SourceControl/list/changesets → Правая сторона → Загрузить.
Однако я не могу открыть весь проект на своем Microsoft Visual С# 2010 Express (который также запускает С# XNA), потому что
Папки решений не поддерживаются в этой версии приложения
Также я хочу, чтобы класс использовался отдельно в моем собственном проекте seprate.
Я попытался скопировать три важных кажущихся файла Interval.cs
, IntervalNode.cs
и IntervalTree.cs
в мой проект, но это сгенерировало ошибку компиляции
Нет импортеров, которые обрабатывают этот тип файла
Я также попытался скопировать и вставить содержимое трех файлов в свой проект, инкапсулируя их в собственное пространство имен, а также было много кода. Мне пришлось немного изменить некоторые из них, но столкнулся с проблемой, что, возможно, он хочет, чтобы файлы PowerCollections.dll и .pcb как using Wintellect.PowerCollections;
вызывали
Невозможно найти имя типа или пространства имен 'Wintellect' (вам не хватает директивы using или ссылки на сборку?)
Я не уверен, как продолжить или если я вообще делаю правильно, как заставить этот класс работать.
Ответы
Ответ 1
Добавить библиотеку в ваше решение
Скопируйте каталог IntervalTreeLib в каталог решений. Затем щелкните правой кнопкой мыши свое решение и добавьте существующий проект. Наведите указатель на IntervalTreeLib.csproj
в IntervalTreeLib и нажмите "Открыть". Это должно добавить проект IntervalTreeLib к вашему решению.
![Add Existing Project Screenshot]()
Добавить ссылку на библиотеку в вашем проекте
Затем в вашем проекте добавьте ссылку на IntervalTreeLib proejct:
- Щелкните правой кнопкой мыши папку "Ссылки" и "Добавить ссылку". Перейдите на вкладку "Проекты" и выберите "IntervalTreeLib".
![Add Reference Screenshot]()
![Select Project Reference Screenshot]()
Используйте классы в коде
Чтобы использовать классы из библиотеки в вашем источнике, вам нужно либо добавить:
using IntervalTreeLib;
void Foo() {
IntervalTree<int, int> tree = new ...
}
Или, обратитесь к ним по их полному имени:
IntervalTreeLib.IntervalTree<int, int> tree = new ...
Ответ 2
Откройте файл IntervalTreeLib.csproj
, если вы хотите полностью открыть проект (или в текущем решении добавить существующий проект (вы можете щелкнуть правой кнопкой мыши по решению) и выбрать IntervalTreeLib.csproj
). Если вы пытаетесь захватить только файл кода в своем проекте, убедитесь, что вы также захватили файл PowerCollections.dll
(я вижу, что он находится в той же папке, что и файлы кода), или ваш код не будет компилироваться (как вы обнаружили). Вам нужно будет добавить ссылку на него и включить требуемый оператор using в верхней части файлов кода, используя эту библиотеку (или использовать полное имя с пространством имен).
using IntervalTreeLib;
или
var myObj = new IntervalTreeLib.[WhateverClass](...);
Кроме того, убедитесь, что вы прочитали файл license.txt. Возможно, вам придется включить его, если вы используете код. Дайте кредит там, где это должно быть.
UPDATE:
Если тестовый проект вызывает проблемы, просто откройте проект библиотеки. В идеале вы можете просто открыть это и скомпилировать его, добавив выходные DLL файлы, которые генерируются непосредственно в ваше решение. Это идеально, если вы не планируете менять исходный код библиотеки.
Ответ 3
После обсуждения того, что вы можете создать Intervallib.dll, мы обсудим, как вы должны использовать DLL в своем проекте.
Теперь в вашем проекте щелкните правой кнопкой мыши на ссылке и добавьте dll intervallib.dll в свои ссылки. В файле game.cs укажите ссылку на пространство имен как - using IntervalTreeLib;
тогда вы должны скопировать dll powercollections.dll в каталог bin каталога proj.
вы должны скопировать эту DLL, потому что есть косвенная ссылка на dll, поскольку она используется в IntervalTreeLib.dll
после этих шагов я смог выполнить этот проект.