在构建时缺少指令或程序集

本文关键字:指令 程序集 构建 | 更新日期: 2023-09-27 18:13:35

我正在构建一个涉及多个项目的解决方案。我用几种用法添加了对它们的引用,并且VS在编写过程中没有标记任何问题,但是当我构建时,我得到这个错误:

Error   3   The type or namespace name 'OrderRules' could not be found (are you missing a using directive or an assembly reference?)

这是发生错误的类之一:

using OrderRules.Interface;
namespace OrderRule.Quantity
{
    public class MaxStarshipRule : OrderRules.Interface.IOrderRule
    {
        public OrderRules.Interface.OrderRuleResult CheckRule(OrderTaker.SharedObjects.Order order)
        {
            var passed = true;
            var message = string.Empty;
            foreach (var item in order.OrderItems)
            {
                if (item.ProductItem.ProductName == "Starship" && item.Quantity > 1)
                {
                    passed = false;
                    message = "Maximum of 1 starship per order";
                }
            }
            return new OrderRuleResult(passed, message);
        }
        public string RuleName
        {
            get { return "Maximum Starship Rule"; }
        }
    }
}

在我看来很正常,你能看到什么吗?

在构建时缺少指令或程序集

如果:

  • 你添加了所有必需的项目参考
  • 您添加了所有必需的using XXX
  • Visual Studio允许您编写类型/名称空间而不告诉您它不存在(语法高亮显示是OK的)
  • 它只在你编译你的项目时失败

然后检查您的所有项目都针对同一平台(或者至少目标平台是兼容的)。例如,不要从以。net 4.0为目标的程序集(客户端配置文件)引用以。net 4.0为目标的程序集(完整)。