这个问题是另一个SO问题的延伸:How to use a Class from one C# project with another C# project
最流行的答案描述了在同一解决方案中添加对另一个项目的引用的过程。按照以下步骤,我可以获得Microsoft对其他项目中的更改的Intellisense建议,但是在编译时我面临以下错误:
错误112'OtherNamespace.ClassObject'不包含定义 对于'NewProperty'并且没有扩展方法'NewProperty'接受a 可以找到类型'OtherNamespace.ClassObject'的第一个参数 (您是否缺少using指令或程序集引用?)
知道造成冲突的原因是什么?
编辑:示例代码:
public class ClassObject
{
public virtual int ExistingProperty
{
get;
set;
}
public virtual int NewProperty
{
get;
set;
}
public ClassObject()
{
}
}
我认为这可能是由于在编译期间使用的不同引用比在代码编辑时使用的引用不同。因为有一些奇怪的问题,如果我更改现有的属性名称,所有对它的引用都会在编译时显示错误但新属性不起作用。
EDIT2:添加图片 -
编译前:
编译后:
tbl_Scaling_Line
为ObjectClass
,SuratJalanCheck
为NewProperty
答案 0 :(得分:0)
显而易见,问题是由于对旧版DLL(第二个项目的结果)的错误引用,即使项目间引用已正确设置。
以前,由于另一个编译时间问题,我已将所有项目的构建输出目录设置为相同(作为使用所有DLL的主项目)。事实证明,这是罪魁祸首,通过将每个项目返回到自己的构建目录并让项目间引用完成其工作,可以轻松修复。
PS。这个问题和答案可能与每个人都不相关,但我觉得它仍然为SO社区提供了价值。