Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.65/17: Рейтинг темы: голосов - 17, средняя оценка - 4.65
EugenOS
1 / 1 / 1
Регистрация: 20.04.2014
Сообщений: 16
#1

Добавить в проект компоненты скомпилированные под разные версии NET

28.04.2014, 06:51. Просмотров 3097. Ответов 10
Метки нет (Все метки)

Имею проблему. Так как новичек в NET и C# в частности, не могу понять как сделать и есть ли простой способ решения.
1) Имеется два SDK для работы с разным железом. Оба имеют библиотеки расcчитанные на NET3.5. Написан проект, работает нормально. Потребовалось к нему прикрутить параллельные вычисления (CUDA, OpenCL) Для простоты был выбран CUDAfy.NET. Собрана отдельная тестовая программка. Все работает хорошо. Вычисления работают почти в реальном времени (приемлемое быстродействие получено) не более 3-4 секунд на объект.
Настало время добавить эти функции в основной проект. Вот тут вылезли проблемы.
CUDAFy.NET хочет чтобы проект был NET4.0.

1) Если ставлю Target = .NET4. То ругается на классы работающие с железом: Типа того что пользуйте интерфейсы. (откуда взять? самому оболочить COM объекты что ли?)
2) Если ставлю Target = .NET3.5 То ругается на CUDAfy.NET типа целевая платформа не соответствует(или как-то там) требуется .NET4

Смотрел исходники CUDAFy. там ест такой файлик DotNet35Compat.cs. Не понял только как его задействовать.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under MIT X11 license (for details please see \doc\license.txt)
 
using System;
using System.Collections.Generic;
using System.Linq;
 
public static class DotNet35Compat
{
    public static string StringJoin<T>(string separator, IEnumerable<T> elements)
    {
        #if DOTNET35
        return string.Join(separator, elements.Select(e => e != null ? e.ToString() : null).ToArray());
        #else
        return string.Join(separator, elements);
        #endif
    }
    
    public static IEnumerable<U> SafeCast<T, U>(this IEnumerable<T> elements) where T : class, U where U : class
    {
        #if DOTNET35
        foreach (T item in elements)
            yield return item;
        #else
        return elements;
        #endif
    }
    
    public static Predicate<U> SafeCast<T, U>(this Predicate<T> predicate) where U : class, T where T : class
    {
        #if DOTNET35
        return e => predicate(e);
        #else
        return predicate;
        #endif
    }
    
    #if DOTNET35
    public static IEnumerable<R> Zip<T1, T2, R>(this IEnumerable<T1> input1, IEnumerable<T2> input2, Func<T1, T2, R> f)
    {
        using (var e1 = input1.GetEnumerator())
            using (var e2 = input2.GetEnumerator())
                while (e1.MoveNext() && e2.MoveNext())
                    yield return f(e1.Current, e2.Current);
    }
    #endif
}
 
#if DOTNET35
namespace System.Diagnostics.Contracts { }
namespace System.Threading
{
    internal struct CancellationToken
    {
        public void ThrowIfCancellationRequested() {}
    }
}
#endif
Подскажите куда копать, пните в нужном направлении?

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.04.2014, 06:51
Ответы с готовыми решениями:

Как пересобрать проект в другой версии .NET?
Всем привет. У меня стоит .NET 4.06. Как можно собрать проект в версии 3.5?

Проект под .NET Framework 2.0 работает на 20% быстрее чем под 4.0
Добрый день! Один и тот же проект. Изначально написан под 2.0. В сборке...

Разработка под старые версии .NET
У меня на компьютере стоит Windows XP SP2, .NET 3.5 и Visual Studio 2008. Если...

VisualStudio2010, C#.NET отредактировать проект и добавить кнопку
Отредактировать программу и добавить кнопку &quot;заливка&quot;

Нужно скомпилировать проект под Net 2.0
У меня нету 2.0 и не ставится... Кто нить прокомпильте мне плиз под Net 2.0

10
Spawn
970 / 868 / 353
Регистрация: 24.03.2014
Сообщений: 2,381
Записей в блоге: 2
28.04.2014, 08:21 #2
Задействуете только при пересборке библиотек под .NET 3.5, что вероятнее всего и стоит сделать.

И можно поподробнее, что за ошибки при Target = .NET 4?
0
EugenOS
1 / 1 / 1
Регистрация: 20.04.2014
Сообщений: 16
28.04.2014, 09:51  [ТС] #3
Создал "голый" проект:
добавил два юзинга и один класс. чтоб проявились обе проблемы:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using PRIORLib;
using Cudafy;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public ScanClass scan;
        public Form1()
        {
            InitializeComponent();
        }
    }
}
При target = 3.5
Кликните здесь для просмотра всего текста

1>------ Построение начато: проект: WindowsFormsApplication1, Конфигурация: Debug Any CPU ------
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3274: Не удается разрешить основную ссылку "Cudafy.NET", поскольку она была построена для платформы ".NETFramework,Version=v4.0". Это более поздняя версия по сравнению с текущей целевой платформой ".NETFramework,Version=v3.5".
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3258: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", имеющей более позднюю версию "4.0.0.0", чем версия "2.0.0.0" в текущей целевой платформе.
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3258: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", имеющей более позднюю версию "4.0.0.0", чем версия "3.5.0.0" в текущей целевой платформе.
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3268: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "System.ComponentModel.Composition, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", которую невозможно разрешить в целевой инфраструктуре. ".NETFramework,Version=v3.5". Чтобы исправить эту ошибку, удалите ссылку "Cudafy.NET", или измените целевую инфраструктуру на версию, которая содержит "System.ComponentModel.Composition, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3258: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "System.Xml.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", имеющей более позднюю версию "4.0.0.0", чем версия "3.5.0.0" в текущей целевой платформе.
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3258: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", имеющей более позднюю версию "4.0.0.0", чем версия "2.0.0.0" в текущей целевой платформе.
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3268: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "System.Numerics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", которую невозможно разрешить в целевой инфраструктуре. ".NETFramework,Version=v3.5". Чтобы исправить эту ошибку, удалите ссылку "Cudafy.NET", или измените целевую инфраструктуру на версию, которая содержит "System.Numerics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3258: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", имеющей более позднюю версию "4.0.0.0", чем версия "2.0.0.0" в текущей целевой платформе.
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3258: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "Microsoft.VisualBasic, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", имеющей более позднюю версию "10.0.0.0", чем версия "8.0.0.0" в текущей целевой платформе.
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3268: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "Microsoft.CSharp, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", которую невозможно разрешить в целевой инфраструктуре. ".NETFramework,Version=v3.5". Чтобы исправить эту ошибку, удалите ссылку "Cudafy.NET", или измените целевую инфраструктуру на версию, которая содержит "Microsoft.CSharp, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3258: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "PresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", имеющей более позднюю версию "4.0.0.0", чем версия "3.0.0.0" в текущей целевой платформе.
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3258: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", имеющей более позднюю версию "4.0.0.0", чем версия "3.0.0.0" в текущей целевой платформе.
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3268: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "System.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", которую невозможно разрешить в целевой инфраструктуре. ".NETFramework,Version=v3.5". Чтобы исправить эту ошибку, удалите ссылку "Cudafy.NET", или измените целевую инфраструктуру на версию, которая содержит "System.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3258: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "PresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", имеющей более позднюю версию "4.0.0.0", чем версия "3.0.0.0" в текущей целевой платформе.
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3258: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "System.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", имеющей более позднюю версию "4.0.0.0", чем версия "2.0.0.0" в текущей целевой платформе.
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3258: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "System.Runtime.Serialization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", имеющей более позднюю версию "4.0.0.0", чем версия "3.0.0.0" в текущей целевой платформе.
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3258: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", имеющей более позднюю версию "4.0.0.0", чем версия "2.0.0.0" в текущей целевой платформе.
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3258: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "System.Data.SqlXml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", имеющей более позднюю версию "4.0.0.0", чем версия "2.0.0.0" в текущей целевой платформе.
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3258: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "System.Deployment, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", имеющей более позднюю версию "4.0.0.0", чем версия "2.0.0.0" в текущей целевой платформе.
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3258: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", имеющей более позднюю версию "4.0.0.0", чем версия "2.0.0.0" в текущей целевой платформе.
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3258: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "System.Management, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", имеющей более позднюю версию "4.0.0.0", чем версия "2.0.0.0" в текущей целевой платформе.
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3258: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", имеющей более позднюю версию "4.0.0.0", чем версия "2.0.0.0" в текущей целевой платформе.
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3258: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", имеющей более позднюю версию "4.0.0.0", чем версия "2.0.0.0" в текущей целевой платформе.
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3268: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "System.Dynamic, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", которую невозможно разрешить в целевой инфраструктуре. ".NETFramework,Version=v3.5". Чтобы исправить эту ошибку, удалите ссылку "Cudafy.NET", или измените целевую инфраструктуру на версию, которая содержит "System.Dynamic, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3258: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "UIAutomationProvider, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", имеющей более позднюю версию "4.0.0.0", чем версия "3.0.0.0" в текущей целевой платформе.
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3258: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "UIAutomationTypes, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", имеющей более позднюю версию "4.0.0.0", чем версия "3.0.0.0" в текущей целевой платформе.
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3268: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "System.Windows.Input.Manipulations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", которую невозможно разрешить в целевой инфраструктуре. ".NETFramework,Version=v3.5". Чтобы исправить эту ошибку, удалите ссылку "Cudafy.NET", или измените целевую инфраструктуру на версию, которая содержит "System.Windows.Input.Manipulations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3258: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "Accessibility, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", имеющей более позднюю версию "4.0.0.0", чем версия "2.0.0.0" в текущей целевой платформе.
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3258: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "PresentationUI, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", имеющей более позднюю версию "4.0.0.0", чем версия "3.0.0.0" в текущей целевой платформе.
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3258: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "System.Printing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", имеющей более позднюю версию "4.0.0.0", чем версия "3.0.0.0" в текущей целевой платформе.
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3258: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "ReachFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", имеющей более позднюю версию "4.0.0.0", чем версия "3.0.0.0" в текущей целевой платформе.
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3258: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "System.Runtime.Serialization.Formatters.Soap, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", имеющей более позднюю версию "4.0.0.0", чем версия "2.0.0.0" в текущей целевой платформе.
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3258: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "System.Configuration.Install, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", имеющей более позднюю версию "4.0.0.0", чем версия "2.0.0.0" в текущей целевой платформе.
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3258: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "Microsoft.JScript, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", имеющей более позднюю версию "10.0.0.0", чем версия "8.0.0.0" в текущей целевой платформе.
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3258: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", имеющей более позднюю версию "4.0.0.0", чем версия "2.0.0.0" в текущей целевой платформе.
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3258: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "System.DirectoryServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", имеющей более позднюю версию "4.0.0.0", чем версия "2.0.0.0" в текущей целевой платформе.
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3258: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "Microsoft.Build.Framework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", имеющей более позднюю версию "4.0.0.0", чем версия "3.5.0.0" в текущей целевой платформе.
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3258: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "System.ComponentModel.DataAnnotations, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", имеющей более позднюю версию "4.0.0.0", чем версия "3.5.0.0" в текущей целевой платформе.
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3268: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "System.Runtime.Caching, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", которую невозможно разрешить в целевой инфраструктуре. ".NETFramework,Version=v3.5". Чтобы исправить эту ошибку, удалите ссылку "Cudafy.NET", или измените целевую инфраструктуру на версию, которая содержит "System.Runtime.Caching, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3268: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "System.Web.ApplicationServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35", которую невозможно разрешить в целевой инфраструктуре. ".NETFramework,Version=v3.5". Чтобы исправить эту ошибку, удалите ссылку "Cudafy.NET", или измените целевую инфраструктуру на версию, которая содержит "System.Web.ApplicationServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35".
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3258: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", имеющей более позднюю версию "4.0.0.0", чем версия "2.0.0.0" в текущей целевой платформе.
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3258: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "System.Web.Services, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", имеющей более позднюю версию "4.0.0.0", чем версия "2.0.0.0" в текущей целевой платформе.
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3268: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "Microsoft.Build.Utilities.v4.0, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", которую невозможно разрешить в целевой инфраструктуре. ".NETFramework,Version=v3.5". Чтобы исправить эту ошибку, удалите ссылку "Cudafy.NET", или измените целевую инфраструктуру на версию, которая содержит "Microsoft.Build.Utilities.v4.0, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3258: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "System.DirectoryServices.Protocols, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", имеющей более позднюю версию "4.0.0.0", чем версия "2.0.0.0" в текущей целевой платформе.
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3258: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", имеющей более позднюю версию "4.0.0.0", чем версия "2.0.0.0" в текущей целевой платформе.
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3258: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", имеющей более позднюю версию "4.0.0.0", чем версия "2.0.0.0" в текущей целевой платформе.
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3268: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "Microsoft.Build.Tasks.v4.0, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", которую невозможно разрешить в целевой инфраструктуре. ".NETFramework,Version=v3.5". Чтобы исправить эту ошибку, удалите ссылку "Cudafy.NET", или измените целевую инфраструктуру на версию, которая содержит "Microsoft.Build.Tasks.v4.0, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3258: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "System.ServiceProcess, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", имеющей более позднюю версию "4.0.0.0", чем версия "2.0.0.0" в текущей целевой платформе.
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3258: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "System.Web.RegularExpressions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", имеющей более позднюю версию "4.0.0.0", чем версия "2.0.0.0" в текущей целевой платформе.
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3258: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "System.Transactions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", имеющей более позднюю версию "4.0.0.0", чем версия "2.0.0.0" в текущей целевой платформе.
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3258: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "System.Drawing.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", имеющей более позднюю версию "4.0.0.0", чем версия "2.0.0.0" в текущей целевой платформе.
1>C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3258: не удалось разрешить первичную ссылку "Cudafy.NET", поскольку она косвенно зависит от сборки .NET Framework "System.Data.OracleClient, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", имеющей более позднюю версию "4.0.0.0", чем версия "2.0.0.0" в текущей целевой платформе.
1>C:\Users\EugenOS\documents\visual studio 2012\Projects\WindowsFormsApplication1\WindowsFormsApplication1\Program.cs(6,7,6,13): error CS0246: Не удалось найти имя типа или пространства имен "Cudafy" (пропущена директива using или ссылка на сборку?)
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========

при таргет = 4.0
Код
1>------ Построение начато: проект: WindowsFormsApplication1, Конфигурация: Debug Any CPU ------
1>C:\Users\EugenOS\documents\visual studio 2012\Projects\WindowsFormsApplication1\WindowsFormsApplication1\Form1.cs(16,16,16,25): error CS1752: Внедрение типа взаимодействия "PRIORLib.ScanClass" невозможно. Используйте вместо него доступный интерфейс.
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
 Комментарий модератора 
Просьба модераторов теги кода не добавлять.
0
Spawn
970 / 868 / 353
Регистрация: 24.03.2014
Сообщений: 2,381
Записей в блоге: 2
28.04.2014, 11:42 #4
C 3.5 всё и так понятно, там всю библиотеку придётся из исходников пересобирать.

А вот с 4.0 всё по аналогии с Interop библиотек MS Office, доступный интерфейс может быть в самой библиотеке, например IScanClass какой--нибудь, либо же его придётся создать уже самостоятельно. Если библиотека не секретная, то прикрепите, посмотрим что можно посоветовать.
0
EugenOS
1 / 1 / 1
Регистрация: 20.04.2014
Сообщений: 16
28.04.2014, 16:14  [ТС] #5
Отдельно скопированная DLL по-моему не работает. Но на всякий случай кинул. там две dll и хелп к ним.
Prior Software.rar
А вот тут можно скачать софт от железки , куда либа входит.
http://www.prior-instruments.de/Customer-Support/Download-Centre/
верхние 2-е строчки собственно установка софта(x32 / x64)
0
Spawn
970 / 868 / 353
Регистрация: 24.03.2014
Сообщений: 2,381
Записей в блоге: 2
28.04.2014, 19:23 #6
Как и ожидалось, нашёлся интерфейс. Вместо ScanClass следует использовать IScan
1
EugenOS
1 / 1 / 1
Регистрация: 20.04.2014
Сообщений: 16
28.04.2014, 21:19  [ТС] #7
Да, спасибо, так помогло.
Scan scan = new Scan()
и т.п. т.е. IScan, IStage, IZ - абстрактные, а Scan, Stage, Z - не знаю даже какие (вроде же тоже интерфейсы) но так вроде работает(по крайней мере пытается компилироваться).

Осталась одна проблемка. В библиотеке присутствует класс Constants. И в нем константы. На него естественно интерфейса нет. Описания значений всех констант тоже.

Как можно получить список всех констант в классе (хочу сохранить в файлик и потом подключить уже его к проекту)?
Что-то типа: foreach( ConstMember = GetControl( PRIORITYLib.Constants )){....}
0
Spawn
970 / 868 / 353
Регистрация: 24.03.2014
Сообщений: 2,381
Записей в блоге: 2
28.04.2014, 21:20 #8
На константы компилятор вряд ли будет ругаться, нет необходимости выкидывать...
0
EugenOS
1 / 1 / 1
Регистрация: 20.04.2014
Сообщений: 16
28.04.2014, 23:38  [ТС] #9
ругается

1>------ Построение начато: проект: WindowsFormsApplication1, Конфигурация: Debug Any CPU ------
1>C:\Users\EugenOS\documents\visual studio 2012\Projects\FrameGlueCS\WindowsFormsApplication1\Form1.cs(164,42,164,51): error CS1752: Внедрение типа взаимодействия "PRIORLib.Constants" невозможно. Используйте вместо него доступный интерфейс.
1>C:\Users\EugenOS\documents\visual studio 2012\Projects\FrameGlueCS\WindowsFormsApplication1\Form1.cs(164,52,164,60): error CS0117: "PRIORLib.Constants" не содержит определение для "PRIOR_OK"
1>C:\Users\EugenOS\documents\visual studio 2012\Projects\FrameGlueCS\WindowsFormsApplication1\Form1.cs(398,30,398,39): error CS1752: Внедрение типа взаимодействия "PRIORLib.Constants" невозможно. Используйте вместо него доступный интерфейс.
1>C:\Users\EugenOS\documents\visual studio 2012\Projects\FrameGlueCS\WindowsFormsApplication1\Form1.cs(398,40,398,48): error CS0117: "PRIORLib.Constants" не содержит определение для "PRIOR_OK"

========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
0
Spawn
970 / 868 / 353
Регистрация: 24.03.2014
Сообщений: 2,381
Записей в блоге: 2
28.04.2014, 23:43 #10
А Вы переменную с этим типом создаёте? Или просто как константы используете и оно ругается?
В принципе вот они...
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
namespace PRIORLib
{
    using System;
 
    public abstract class Constants
    {
        public const int ERR_WELLPLATE_AXIS_STALLED = -14;
        public const int ERR_WELLPLATE_COMMS_ERROR = -13;
        public const int ERR_WELLPLATE_GRIPPER_HOMING_FAILED = -3;
        public const int ERR_WELLPLATE_HOTELREMOVED = -10;
        public const int ERR_WELLPLATE_INVALIDHOTEL = -4;
        public const int ERR_WELLPLATE_INVALIDSTATECHANGE = -9;
        public const int ERR_WELLPLATE_INVALIDWELLPLATE = -5;
        public const int ERR_WELLPLATE_NOTINITIALISED = -1;
        public const int ERR_WELLPLATE_NOTSETUP = -2;
        public const int ERR_WELLPLATE_OK = 0;
        public const int ERR_WELLPLATE_STAGEMOVEDDURINGTRANSFER = -12;
        public const int ERR_WELLPLATE_STAGENOTATLOAD = -6;
        public const int ERR_WELLPLATE_WELLPLATEINGRIPPER = -7;
        public const int ERR_WELLPLATE_WELLPLATESTAGECLAMPCLOSED = -8;
        public const int ERR_WELLPLATE_WRONGWELLPLATESENSORSTATE = -11;
        public const int JoystickStateDisabled = 1;
        public const int JoystickStateEnabled = 0;
        public const int JoystickStateXYDisabled = 2;
        public const int JoystickStateZDisabled = 3;
        public const int LOADER_AXISG = 4;
        public const int LOADER_AXISGRIPPER = 4;
        public const int LOADER_AXISSTALLED = 0x8000;
        public const int LOADER_AXISX = 1;
        public const int LOADER_AXISY = 2;
        public const int LOADER_AXISZ = 3;
        public const int LOADER_BARCODEERROR = 0x400;
        public const int LOADER_CASSETTENOTSCANNED = 0x800;
        public const int LOADER_COMMSERROR = 0x1000;
        public const int LOADER_ERROR = 1;
        public const int LOADER_GRIPPERHOMEERROR = 0x4000;
        public const int LOADER_HALLEFFECTERROR = 0x4000;
        public const int LOADER_HOTELNOTSCANNED = 0x800;
        public const int LOADER_INVALIDCASSETTE = 0x40;
        public const int LOADER_INVALIDHOTEL = 0x40;
        public const int LOADER_INVALIDSLIDE = 0x20;
        public const int LOADER_INVALIDWELLPLATE = 0x20;
        public const int LOADER_NOTCONNECTED = 2;
        public const int LOADER_NOTIDLE = 0x10;
        public const int LOADER_NOTINITIALISED = 4;
        public const int LOADER_NOTSETUP = 8;
        public const int LOADER_PARK_BY_CASSETTE = 1;
        public const int LOADER_PARK_NORMAL = 0;
        public const int LOADER_SLIDEONARM = 0x80;
        public const int LOADER_SLIDEONSTAGE = 0x100;
        public const int LOADER_SLIDESENSORERROR = 0x2000;
        public const int LOADER_STAGENOTATLOAD = 0x200;
        public const int LOADER_WELLPLATEONARM = 0x80;
        public const int LOADER_WELLPLATEONSTAGE = 0x100;
        public const int LOADER_WELLPLATESENSORERROR = 0x2000;
        public const int LOADER_XAXISINMOTION = -2147483648;
        public const int LOADER_YAXISINMOTION = 0x40000000;
        public const int LOADER_ZAXISINMOTION = 0x20000000;
        public const int MAX_NUMBER_OF_CASSETTES = 4;
        public const int MAX_NUMBER_OF_LEDS = 4;
        public const int MAX_NUMBER_OF_WELLPLATEHOTELS = 2;
        public const int MAX_SLIDES_PER_CASSETTE = 50;
        public const int MAX_WELLPLATES_PER_HOTEL = 10;
        public const int PRIOR_ALREADYCONNECTED = -5;
        public const int PRIOR_APPDATAPATHERROR = -8;
        public const int PRIOR_DEVICEINUSE = -12;
        public const int PRIOR_DEVICENOTFITTED = -10;
        public const int PRIOR_FAILEDTOFINDCONTROLLER = -2;
        public const int PRIOR_FAILEDTOFINDPCICARD = -3;
        public const int PRIOR_FAILEDTOOPENPORT = -1;
        public const int PRIOR_INVALIDPARAMETER = -11;
        public const int PRIOR_LOADERERROR = -7;
        public const int PRIOR_LOWVOLTAGE = -9;
        public const int PRIOR_NOTCONNECTED = -4;
        public const int PRIOR_NOTSUPPORTED = -6;
        public const int PRIOR_OK = 0;
        public const int PriorFalse = 0;
        public const int PriorFW1 = 1;
        public const int PriorFW1_HOME = 4;
        public const int PriorFW1_NEXT = 2;
        public const int PriorFW1_PREV = 3;
        public const int PriorFW2 = 5;
        public const int PriorFW2_HOME = 8;
        public const int PriorFW2_NEXT = 6;
        public const int PriorFW2_PREV = 7;
        public const int PriorFW3 = 9;
        public const int PriorFW3_HOME = 12;
        public const int PriorFW3_NEXT = 10;
        public const int PriorFW3_PREV = 11;
        public const int PriorLed1 = 1;
        public const int PriorLed2 = 2;
        public const int PriorLed3 = 3;
        public const int PriorLed4 = 4;
        public const int PriorLedCompabilityOperation = 1;
        public const int PriorLedCurrentMode = 1;
        public const int PriorLedFitted = 1;
        public const int PriorLedLightMode = 0;
        public const int PriorLedNormalOperation = 0;
        public const int PriorLedNotFitted = 0;
        public const int PriorLedOff = 0;
        public const int PriorLedOn = 1;
        public const int PriorLedTriggerDisabled = 0;
        public const int PriorLedTriggerEnabled = 1;
        public const int PriorLedTriggerFalling = 3;
        public const int PriorLedTriggerHigh = 0;
        public const int PriorLedTriggerLow = 1;
        public const int PriorLedTriggerRising = 2;
        public const int PriorLIGHT = 20;
        public const int PriorOff = 0;
        public const int PriorOn = 1;
        public const int PriorPiezoAbs = 0x51;
        public const int PriorPiezoRel = 80;
        public const int PriorSH1Close = 0x3d;
        public const int PriorSH1Open = 60;
        public const int PriorSH2Close = 0x3f;
        public const int PriorSH2Open = 0x3e;
        public const int PriorSH3Close = 0x41;
        public const int PriorSH3Open = 0x40;
        public const int PriorShutterClose = 0;
        public const int PriorShutterOpen = 1;
        public const int PriorStop = 70;
        public const int PriorTrigArmed = 1;
        public const int PriorTrigDisarmed = 0;
        public const int PriorTrigHi = 1;
        public const int PriorTrigLow = 0;
        public const int PriorTrue = 1;
        public const int PriorXYABS = 0x29;
        public const int PriorXYREL = 40;
        public const int PriorXYZABS = 0x33;
        public const int PriorXYZREL = 50;
        public const int PriorZABS = 0x1f;
        public const int PriorZREL = 30;
        public const int STATE_IDLE = 0x400000;
        public const int STATE_INITIALISE = 0x200000;
        public const int STATE_SCANBARCODE = 0x900000;
        public const int STATE_SCANCASSETTE = 0x800000;
        public const int STATE_SCANHOTEL = 0x800000;
        public const int STATE_SETUP = 0x100000;
        public const int STATE_STATEMASK = 0xf00000;
        public const int STATE_STOP = 0x300000;
        public const int STATE_SUBSTATEMASK = 0x3f000000;
        public const int STATE_TXF_FROMSLIDETOSLIDE = 0x700000;
        public const int STATE_TXF_FROMSTAGE = 0x600000;
        public const int STATE_TXF_FROMWELLPLATETOWELLPLATE = 0x700000;
        public const int STATE_TXF_TOSTAGE = 0x500000;
        public const int STATE_UNKNOWN = 0;
    }
}
1
EugenOS
1 / 1 / 1
Регистрация: 20.04.2014
Сообщений: 16
28.04.2014, 23:48  [ТС] #11
спасибо. то что надо.
а использую вот так:
C#
1
if (port > 0 && PRIORLib.Constants.PRIOR_OK == scan.Connect(ref port) ) {...}
0
28.04.2014, 23:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.04.2014, 23:48

Разные версии VS находят разные SerialPort
Есть большой чужой проект, состящии из основного проекта и компонентов. Все это...

Версия С# соответствует версии .NET x.x?
Привет всем. Подскажите пожалуйста. Если проект создан на базе версии...

Установщик .NET нужной версии
Всем доброго времени суток. Стоит задача написать установщик программ,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru