#c# #dll
#c# #dll
Вопрос:
Я пытаюсь добавить [Science.dll ] в моем проекте, который должен быть прямым. Но у меня возникает проблема. Может кто-нибудь сказать мне, почему?
Мой проект C #, который я только что скопировал из Интернета.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.ComponentModel;
using System.Data;
using Science.Mathematics.VectorCalculus;
namespace using_science_dll
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>`enter code here`
}
}
C:Csharptutorialusing_science_dllusing_science_dllProgram.cs (7,7): ошибка CS0246: не удалось найти тип или имя пространства имен ‘Science’ (вам не хватает директивы using или ссылки на сборку?)
Это потому, что я использую VS 2008?
Science.dll
в следующем фрейме будут запущены .Net 4.0 и Visual C # 2010 Express
Комментарии:
1. Как вы можете видеть справа на вашем скриншоте, ссылка нарушена. Поэтому естественно, что
using
предложение не будет работать. Но вам нужно сообщить нам, что такое предупреждение / сообщение об ошибке в неработающей ссылке.2. Вы получили предупреждение в разделе «Ссылки» обозревателя решений. О чем говорит это предупреждение?
3. Visual Studio не может найти ссылку на Science, попробуйте удалить и повторно добавить эту ссылку…
4. Это наука. dll, скомпилированная для .net 4? Судя по ! в окне ссылок кажется, что ваш проект нацелен на несовместимую версию .net. Поскольку вы на VS2008, я предполагаю, что наука. dll — это .net 4. Другой вариант заключается в том, что вы ориентируетесь на клиентскую платформу. Щелкните правой кнопкой мыши ваш проект (using_science_dll) и убедитесь, что целевой фреймворк не является «Клиентским фреймворком». Здесь нет VS2008, поэтому я точно не знаю, как это называлось.
Ответ №1:
DLL должна присутствовать постоянно — как следует из названия, ссылка сообщает VS только о том, что вы пытаетесь использовать содержимое библиотеки DLL. В файле проекта VS сохраняет фактический путь и имя файла указанной библиотеки DLL. Если вы переместите или удалите его, VS больше не сможет его найти.
Обычно я создаю libs
папку в папке моего проекта, куда я копирую библиотеки DLL, которые не установлены в GAC. Затем я фактически добавляю эту папку в свой проект в VS (показываю скрытые файлы в VS, затем щелкаю правой кнопкой мыши и «Включаю в проект»). Затем я ссылаюсь на библиотеки DLL из папки, поэтому при проверке в системе управления версиями библиотека также проверяется. Это значительно упрощает работу, когда нескольким разработчикам придется изменять проект.
(Пожалуйста, убедитесь, что для DLL в вашем проекте установлен тип сборки «нет» и «не копировать в папку вывода».)
PS: Я использую немецкую Visual Studio, поэтому приведенные мной подписи могут не совсем соответствовать английской версии…
Комментарии:
1. Привет, Торстен, пожалуйста, расскажите более подробно, как делать ссылки на библиотеки DLL, которые находятся внутри project / solution.
2. В папке вашего проекта (это на уровне, где находятся все ваши файлы cs и файл csproj) создайте новую папку (имя не имеет значения, я обычно использую «lib»). Скопируйте DLL, на которую там будет ссылка. В VS убедитесь, что вы видите все файлы, выбрав проект и нажав кнопку «Показать все файлы». Затем нажмите «Обновить», щелкните правой кнопкой мыши папку (выделена серым цветом) и нажмите «Добавить в проект. Установите стиль сборки на «NONE» для DLL, а затем добавьте ссылку на DLL из новой папки.
Ответ №2:
Добавили ли вы dll в список ссылок на ваш проект? Если нет, щелкните правой кнопкой мыши по папке проекта «Ссылки» и выберите «Добавить ссылку», затем используйте обзор, чтобы найти нужную науку.выберите dll и нажмите ok.
Редактировать
Я не вижу изображения вашего экземпляра VS, на который ссылаются некоторые люди, и я отмечаю, что теперь вы говорите, что он работает в Net4.0 и VS2010.
Проекты VS2008 по умолчанию поддерживают NET 3.5. Я ожидаю, что это проблема, поскольку ваша DLL может быть совместимой с NET 4.0, но не с NET 3.5.
Ответ №3:
В правой колонке вашего обозревателя решений вы можете увидеть рядом со ссылкой на «Science», что она помечена как предупреждение. Либо это означает, что он не может ее найти, либо возражает против нее по какой-то другой причине. Пока это так, и ваш код требует этого (и не только в списке ссылок), он не будет компилироваться.
Пожалуйста, отправьте предупреждающее сообщение, мы можем попытаться помочь вам в дальнейшем.