我负责将我们公司的核心库从以前在Visual Studio 2008上运行的Compact Framework 2.0迁移到Visual Studio 2015,Update 3和.Net 4.6。我创建了新的类库,并将引用更改为指向较旧库的相应.Net版本。例如,如果我们有一个引用Sender.dll和Utils.dll的ProdoctCore库,那么在新的ProducCoreDotNet库中,我已经添加了对SenderDotNet.dll和UtilsDotNet.dll的引用。然后我通过添加"作为链接"将旧Compact Framework的类文件添加到新解决方案中。因此,基本上项目名称具有扩展DotNet,但名称空间与之前具有完全相同的名称。
现在我遇到的问题是我遇到了一个奇怪的错误:
"参考类型' IMonitorComponent'在未引用的程序集中定义。您必须添加对程序集' Utils,Version = 1.5.0.0,Culture = neutral,PublicKeyToken = null'"
的引用但是,我的UtilsDotNet版本是1.0.0.0,而旧的Utils版本是2.0.0.0。
我在SO上读过几个类似的线程,但与this question中提到的不同,IMonitorComponent没有任何对其他程序集的引用。它只是一个具有几个属性的接口:
public enum COMPONENT_STATUS
{
ERROR,
WARNING,
OK,
UNKNOWN,
DISABLED
}
public class ComponentStatusProperty
{
public ComponentStatusProperty(string name, COMPONENT_STATUS status, string message)
{
ComponentName = name;
Status = status;
Message = message;
}
public COMPONENT_STATUS Status { get; set; }
public string Message { get; set; }
public string ComponentName { get; set; }
}
public interface IMonitorComponent
{
string Name { get; }
List<ComponentStatusProperty> Statuses { get; }
bool ComponentSoBrokenThatTheDeviceCannotWork { get; }
}
所以我没有想法,非常感谢你的帮助。另外,请详细说明你的答案,因为我之前没有做过这样的事情。
答案 0 :(得分:1)
我们终于找到了原因。我们正在使用另一个使用Utils 1.5版的参考。所以我为该引用创建了另一个类库,并使用新的UtilsDotNet作为参考,并解决了问题。