Я полностью перефразирую (точнее) испытываю потерю ссылки на библиотеку классов, на которую ссылаются, из службы C # Windows.
Процесс:
Создан новый C # .Net v4.0 Windows сервис.
В этом решении я создал новую библиотеку классов, которая будет вызываться из метода OnStart () службы, и в службе Windows делается ссылка на библиотеку классов.
Я импортирую проект RssToolkit (найдено здесь ). Фреймворк проекта RssToolkit - 2.0 (не имеет значения), но, к вашему сведению. Ссылка на RssToolkit сделана из библиотеки классов.
Итак, у нас есть служба Windows -> библиотека классов -> RssToolkit.
Служба Windows:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using ClassLibraryToExecuteRss;
namespace WindowsService1
{
public partial class Service1 : ServiceBase
{
public Service1()
{
InitializeComponent();
}
protected override void OnStart(string[] args)
{
Class1.DoSomeWork();
}
protected override void OnStop()
{
}
}
}
Библиотека классов:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using RssToolkit.Rss;
namespace ClassLibraryToExecuteRss
{
public static class Class1
{
public static void DoSomeWork()
{
//RssDocument rssDocument = new RssDocument();
//rssDocument = RssDocument.Load(new System.Uri("http://www.somerssurl.com"));
}
}
}
Как видите, строки кода с использованием класса RssDocument закомментированы. С этими комментариями я могу скомпилировать решение просто отлично ... но оно бесполезно.
После незакомментирования я получаю следующие ошибки компиляции в сервисном коде:
Ошибка 3 Тип или имя пространства имен
ClassLibraryToExecuteRss не удалось
быть найдены (вы пропускаете использование
директива или собрание
ссылка?) C: \ Projects \ TestBed \ TestingServiceWithXLibs \ WindowsService1 \ WindowsService1 \ Service1.cs 9 7 WindowsService1
... и ...
Ошибка 4 Имя «Class1» не
существуют в текущем
контекст C: \ Projects \ TestBed \ TestingServiceWithXLibs \ WindowsService1 \ WindowsService1 \ Service1.cs 22 13 WindowsService1
Так что здесь происходит? Я построил решение TDD, которое работает нормально, но, принимая код, который вызывает эту библиотеку классов, из моих модульных тестов, я получаю это.
Я не изменил ни одного из пространств имен и оставил все по умолчанию.
Кстати, я изменил целевой каркас RssToolkit на 4.0 ... без изменений, и у меня возникла та же проблема, что и при использовании другой внешней библиотеки (SubSonic) в моей библиотеке классов.
Кто-нибудь может пролить свет на это?