构建后在命名空间中不可用的类

时间:2015-07-10 01:07:26

标签: c#

我使用构建脚本设置VS解决方案,将已编译的DLL复制到另一个项目中。基础项目构建正常,并正确复制到目标。

但是,目标项目无法编译,因为它无法在命名空间中找到特定的类:

foo.cs

namespace foo {
    public class bar {
        public static string myVar {
            get { return "A string"; }
        }
    }
}

myPage.aspx.cs

using foo;

namespace foo.foo2 {
    partial class bar2 {
        protected void Page_Load(object sender, EventArgs e) {
            // can access foo.bar here in the source project but not once the DLL is compiled and copied to target
            var myVar = bar.myVar; // The name 'bar' does not exist in the current context
        }
    }
}

为什么这会在源项目中正确编译,但会阻止目标构建?

编辑:如果我从项目中排除myPage.aspx,第二个项目构建正常。但我不应该这样做。

1 个答案:

答案 0 :(得分:0)

您很可能引用了错误的程序集。

确保使用正确的物理组件。有时,死(旧)版本就在附近(例如在GAC中)并且这个版本被引用而不是相信的新版本。

最简单的确认方法是将程序集文件重命名为其他内容并引用新命名的程序集。 bar.myVar应立即显示。