0
я это следующий класс Я пытаюсь сделать DLL изКак создать dll для одного класса, ссылающегося на другие dll в C# asp.net?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using NRules.Fluent.Dsl;
using NRule.site.Model;
using NRule.site.Utilities;
namespace NRule.site.Rules
{
public class AllowAtleastOneCountryRule : Rule
{
public override void Define()
{
FundProfile productProfile = null;
string str = RuleTexts.AllowAtleastOneCountryRule;
bool enabled = AllRules.GetDict()[str];
When()
.Match<FundProfile>(() => productProfile)
.Exists<FundProfile>(p => enabled, p => RuleViolation(p));
Then()
.Do(_ => productProfile.DisplayError(str));
}
bool RuleViolation(FundProfile pp)
{
if (pp.CountriesListP.Count==0)
return true;
if (pp.CountriesListP.Any(c => c.Allowed))
return false;
else
return true;
}
}
}
Как вы можете видеть, что есть внешние ссылки
using NRules.Fluent.Dsl;
и некоторые другие классы, которые в иерархии
using NRule.site.Model;
using NRule.site.Utilities;
Когда я пробую команду csc, я получаю это
csc /target:library /out:Mylib.dll AllowAtLeastOneCountryRule.cs
Microsoft (R) Visual C# Compiler version 4.0.30319.34209
for Microsoft (R) .NET Framework 4.5
Copyright (C) Microsoft Corporation. All rights reserved.
AllowAtleastOneCountryRule.cs(5,7): error CS0246: The type or namespace name
'NRules' could not be found (are you missing a using directive or an
assembly reference?)
AllowAtleastOneCountryRule.cs(6,18): error CS0234: The type or namespace name
'Model' does not exist in the namespace 'NRule.site' (are you missing a
assembly reference?)
AllowAtleastOneCountryRule.cs(7,18): error CS0234: The type or namespace name
'Utilities' does not exist in the namespace 'NRule.site' (are you
missing an assembly reference?)
AllowAtleastOneCountryRule.cs(11,47): error CS0246: The type or namespace name
'Rule' could not be found (are you missing a using directive or an
assembly reference?)
AllowAtleastOneCountryRule.cs(27,28): error CS0246: The type or namespace name
'FundProfile' could not be found (are you missing a using directive or
an assembly reference?)
Как я могу ссылаться на все сборки и компилировать этот класс в DLL? Любое руководство будет замечательным.
Я могу добавить ссылку на эту сборку Fluent.dsl, потому что это dll. Но как я могу обратиться к другой модели и утилиты? Они не являются сборками, а другими классами в одной папке вверх по иерархии. И эти файлы содержат другие ссылки. – talaa123
'Они не являются сборками, а другими классами в одной папке вверх по иерархии.' Если они находятся в другом файле 'cs', вы должны скомпилировать их также. Перечислите их, разделенные пробелом. –
Но есть и другие файлы, на которые есть ссылки в этих файлах. Я имею в виду, возможно, есть 50 файлов, которые каким-то образом связаны между собой. Как я должен собирать их вместе? Могу ли я сделать что-то вроде удаления этого файла «AllowAtLeastOneCountryRule.cs» из проекта и компиляции остальной части проекта. Получить DLL проекта из папки bin, ссылаться на нее в этом файле, а затем попробовать «csc» только со ссылкой на «FluentDsl.dll» и «myproject.dll». Сможет ли это выглядеть для вас? – talaa123