2013-02-28 3 views
2

Я разработал программы на C# .NET 4.0 с использованием 3d-партийных библиотек в .NET 4.0, и теперь меня попросили нацеливать на 3d-стороннюю программу, которая имеет API только в .NET 1.1.Что я могу сделать, чтобы настроить API в .NET 1.1 из .NET 4.0 (VS2010)?

Я упустил некоторые предыдущие обсуждения, в которых говорится, что это невозможно:

Это странно, что я не могу выполнить предыдущий .NET с .NET (4.0).

В статье:

говорит:

"вот как использовать последнюю версию IDE для работы с .NET 1.1 приложениями."

Применимо ли оно к VS2010 (и VS2012)?

Каковы возможности нацеливания API в .NET 1.1 из .NET 4.0 (VS2010)?
Межпроцессное общение?

Update:
@HighCore,
это программа (терминал), обеспечивающая доступ к Западным торговой фондовой бирже требует логина и cryptokeys для получения данных через Интернет и подачи заявок (купить, продать и т.д.).
Моя программа является алгоризованным ботом в .NET 4.0, но терминал по существу также всегда используется вручную из Windows/GUI.
Я не могу получить прямой доступ к бирже или обмену с программами и библиотеками, предоставляющими это :) или скорее :(

Update2:.
Я даже не найти .NET 1.1 на моей машине Windows XP SP3
обновление Windows, не видел, чтобы получить его
я также напомнить, что в последний раз, когда я установил .NET. 1.1 на нем мне пришлось переустановить VS2005, VS2008, VS2010 с пакетами обновлений и всеми зависимыми объектами ....

То есть, мне кажется, что необходимо установить .NET 1.1, прежде чем более поздние версии? ..

+2

какой? что апи? вы, вероятно, можете делать все, что угодно, не прибегая к третьим сторонам динозавра. –

+1

Зачем вам нужно изменить собственную версию фреймворка? NET 4.0 обратно совместим с 1.1, поэтому вы сможете ссылаться и использовать сторонний компонент, написанный в этой версии. – ChrisBint

+0

@ChrisBint, но сборки .NET 4.0 не могут быть загружены в среду выполнения .NET 1.1. – vcsjones

ответ

1

Вы не можете напрямую. 1.1 работает на 1.0+ CLR, и это не поддерживается непосредственно в VS2010 +.

Из кратких требований, о которых вы упомянули, я бы исследовал некоторую форму архитектуры/границы API для отделения API 1.1 в пределах 4 + CLR-кода, если можно.

Я уверен, что вы не можете загрузить 1.1 CLR и 4.0 CLR в один и тот же процесс, поэтому, возможно, вам понадобится разделение процесса.

Если код уровня 1.1 должен использовать ваш код, вам необходимо переписать версию для этой среды CLR, и, скорее всего, это не тривиальная задача из-за большого количества функций в clr 2.0+ выше 1.1. Снова вам нужно точно определить, что нужно каждой стороне, и изолировать их соответствующим образом. Это не то, что VS2010 + будет делать из коробки.

1

Вы должны изменить файл app.config:

<startup useLegacyV2RuntimeActivationPolicy="true"> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> 
</startup> 

Узел запуска должен содержать useLegacyV2RuntimeActivationPolicy="true".

+0

Вы пытались сделать это сами? Проблема в том, что у меня даже нет .NET 1.1 на моем Windows XP SP3, и после последнего раза, когда я пытался его установить, мне пришлось отформатировать жесткий диск –

+0

@ GennadyVanin - Новосибирск Да, я пробовал это некоторое время назад. Это сработало, но это было не весело, потому что запуск приложения стал очень медленным. Однако вам понадобится инфраструктура, установленная на вашем компьютере, чтобы использовать эти DLL. – pescolino

+0

+1 спасибо за то, что поделились своим опытом –

Смежные вопросы