Visual Studio 2008で実行されていたCompact Framework 2.0からVisual Studio 2015、Update 3および.Net 4.6。私は新しいクラスライブラリを作成し、古いライブラリの対応する.Netバージョンを参照するように参照を変更しました。たとえば、新しいProducCoreDotNetライブラリのSender.dllとUtils.dllを参照していたProdoctCoreライブラリがある場合は、その参照をSenderDotNet.dllとUtilsDotNet.dllに追加しました。次に、古いCompact Frameworkのクラスファイルを新しいソリューションに「リンクとして」追加して追加しました。だから基本的にプロジェクト名は拡張DotNetを持っていますが、名前空間はまったく同じ名前です。C# - リファレンスタイプ 'ISomeInterface'が参照されていないアセンブリで定義されています
今、私が直面してる問題は、私は奇妙なエラーを取得していますということです。
「参照型が 『IMonitorComponent』参照されていないアセンブリで定義されているあなたは、アセンブリへの参照を追加する必要があります"Utils、Version = 1.5.0.0、Culture = neutral、PublicKeyToken = null" "
私のUtilsDotNetのバージョンは1.0.0.0で、古いUtilsはバージョン2.0.0.0でした。
私は同様のスレッドをいくつか読んでいますが、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; }
}
私は考えていないので、あなたの助けに感謝します。また、私は前にこのようなことをしていないので、あなたの答えを詳述してください。
「UtilsDotNet」ではなく「Utils」への参照を追加することを示唆しています。新しいプロジェクトが古いDLLを参照している可能性がありますか([参照の追加] - [参照の追加] - [プロジェクト]を使用せずに参照) – wablab
@wablabすべての参照を追加参照として追加しました。>参照は、各DotNetバージョンのアセンブリのbin/Debugフォルダに移動し、参照して追加しました。 UtilsとUtilsDotNetの名前空間はすべて同じであることに注意してください。また、私は同じ方法で多くの参照されたアセンブリがあるにもかかわらず、この特定のインタフェースに関するこのエラーメッセージを取得します。 –
ProductCoreDotNet、SenderDotNet、およびUtilsDotNetがすべて同じVSソリューションにあると仮定して、ソリューション内のすべての参照を削除してから、[参照の追加] - > [プロジェクト]を使用して再追加します。次にすべてを再構築する。 – wablab