Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - .Net на x64

Ответить
Настройки темы
Разное - .Net на x64

Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


После установки на Windows 7 x64 MS VS и создания почти пустого x64 -приложения, ссылки
через C:\Program Files\Reference Assemblies для некоторых системных компонент устанав-
ливаются по умолчанию на их 86-версии. Возможно это не так и страшно и ни на что в
итоге не повлиляет, ...НО:
1) Дело принципа сослаться на x64 сборки - коль они есть.
2) Возможно способы решения этой проблемы могут быть
полезными и в рамках одной платформы.

Вопрос: что в такой ситуации можно сделать?

P.S.
Возможно эта тема вызовет интерес и сама по себе.
Кому как не .Net-программистам начать что-то делать
на x64?!

Отправлено: 09:06, 09-07-2009

 

Пользователь


Сообщения: 119
Благодарности: 6

Профиль | Отправить PM | Цитировать


Странно, что Visual Studio сама не приспосабливается к x64, хотя, конечно, умеет компилировать код, который выполняется в 64 битах. Может, готовое приложение уже обращается к 64битным аналогам сборок? Ведь запущено оно может быть под любым фреймворком (в котором есть нужные сборки и т.д.) - x86, IA64 или x64.

P.S. К слову, сама IDE выполнена только в x86 варианте.

Отправлено: 11:21, 09-07-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо за внимание к моей теме, уважаемый Almanax.
для RELEASE X64 получаются предупреждения:
Предупреждение 1 Создание сборки -- Сборка "mscorlib.dll", на которую дается ссылка, предназначена для другого процессора
Предупреждение 2 Создание сборки -- Сборка "System.Data.dll", на которую дается ссылка, предназначена для другого процессора
Соответствующая справка MSDN несколько успокаивает:
При построении 64-разрядного приложения в 32-разрядной операционной
системе необходимо обеспечить установку в целевой операционной системе
64-разрядных версий всех связанных сборок. Для всех сборок среды CLR, ориентированных на системы x86, предусмотрены
64-разрядные аналоги (каждая сборка CLR будет существовать во всех операционных системах).
Поэтому для сборок CLR предупреждение CS1607 можно пропустить(!!!).
-------------------------------------------------------------------------------------------------------!!!
Если посмотреть свойства ссылки System.Core, то виден путь C:\Program Files (x86)\Reference Assemblies,
а не C:\Program Files\Reference Assemblies - как бы хотелось. Я не знаю как это осуществить!
Возможно вы или кто-то другой это знает!?

Отправлено: 14:26, 09-07-2009 | #3


Пользователь


Сообщения: 119
Благодарности: 6

Профиль | Отправить PM | Цитировать


VS2008 или 2005?

Отправлено: 15:59, 09-07-2009 | #4


Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


VS2008 - а что есть какая-то принципиальная разница!?

Отправлено: 16:03, 09-07-2009 | #5


Пользователь


Сообщения: 119
Благодарности: 6

Профиль | Отправить PM | Цитировать


Не уверен... А ОС я так понял x86?

Отправлено: 17:59, 09-07-2009 | #6


Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


VS2008(1!) - я же знаю, что у меня установлено под Windows 7 x64(2!) - об этом есть в моем 1-м сообщении
ответы на 2 последних вопроса "в одном флаконе"

Да, кстати абсолютно таже картина будет и на Windows XP SP3 x86, которая у меня на данный момент основная.
Хотя, мне кажется никто не должен мне препятствовать создать(! не запускать) с помощью VS2008 в операционной системе x86-платформы x64-приложение на С#, которое просто выводит пустую форму без контролов.
В этом плане такое ощущение, что дело не в платформе OC, а в самой VS. Просто, для чистоты экспериментов я делаю
все под Windows 7 x64. Ну, и чтобы запустить можно было.

Отправлено: 18:07, 09-07-2009 | #7


Пользователь


Сообщения: 119
Благодарности: 6

Профиль | Отправить PM | Цитировать


Извини , уже забыл))
Дело, конечно, в самой VS. Думаю, при компиляции в Vista x64 получается тот же эффект. Сейчас нет рядом x64 ОС. В C:\Program Files\Reference Assemblies (Win7x64) эти сборки вообще есть?

Отправлено: 21:19, 09-07-2009 | #8


Новый участник


Сообщения: 6
Благодарности: 0

Профиль | Отправить PM | Цитировать


Уважаемый Almanax!
Прежде всего, во Windows 7 x64 64-разрядные приложения группируются в Program Files,
а 32-разрядные в Program Files (x86).
Далее:
1) В C:\Windows\assembly в графе "Архитектура процессора" встечаются значения: x86, AMD64, MSIL.
В частности, mscorlib есть MSIL и AMD64.Аналогично и для System.Data.А вот System.Core там только MSIL.
( думаю, что AMD64 нужно понимать просто как х64).
2) Много еще где хранятся сборки .Net( они там предустановлены). В частности,
в C:\Windows\Microsoft.NET\Framework и C:\Windows\Microsoft.NET\Framework64.
3) В C:\Program Files (x86)\Reference Assemblies:
- mscorlib отсутствует;
- System.Data отсутствует;
В C:\Program Files\Reference Assemblies - аналогично
4) А вот System.Core есть в обоих "Референсах", но берется из
C:\Program Files (x86)\Reference Assemblies и для платформы x64.
Это видно из свойств этой ссылки в проекте x64.
Если у вас нет 64-разрядной OC, то вам будет сложно предложить что-нибудь путное.Но кто знает?

Отправлено: 00:23, 10-07-2009 | #9


Пользователь


Сообщения: 119
Благодарности: 6

Профиль | Отправить PM | Цитировать


Цитата knibrest:
Прежде всего, во Windows 7 x64 64-разрядные приложения группируются в Program Files,
а 32-разрядные в Program Files (x86). »
Я это знаю. Если у меня в данный момент нет x64 ОС - это не означает, что я ей никогда не пользовался.

Цитата knibrest:
думаю, что AMD64 нужно понимать просто как х64 »
Так оно и есть. x64 (а точнее x86-x64) - это альтернативное название архитектуры AMD64, которая позволяет на стандартом x86-совместимом процессоре запустить 64битный уровень.

MSIL означает, что сборка будет браться из той папки, которая содержит сборки архитектуры среды.

Т.к. System.Core определяется как MSIL, то и результат для него соответствующий. Т.к. VS2008 (как и 2005, 2010 CTP) выполнена в x86 варианте и является средой выполнения вашей программы на момент её компиляции, она и показывает вам сборки из папки Program Files (x86).

После компиляции проекта ваш .exe или .dll содержат не машинный код, а код промежуточного языка IL, который при запуске программы перекомпилируется в машинный код средой выполнения (Framework x86 или Framework x64). Вот на этой стадии уже берутся сборки из нужной папки и нужной архитектуры.

Отправлено: 13:48, 10-07-2009 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - .Net на x64

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Система - WinTools.net 9.11.1 + Vista x64 d_u Программное обеспечение Windows 0 10-01-2010 19:01
[решено] HUAWEI EC226 - драйвер для Windows Vista x64 есть а под XP x64 нету - как решить? crashtuak Поиск драйверов, прошивок и руководств 3 16-08-2009 21:32
ищу KB922498 для Windows XP x64 или Windows Server 2003 x64 front242 Microsoft Windows NT/2000/2003 19 07-05-2008 19:12
.NET - *Теория*(VB.NET || C#.net ) Нужен алгоритм для мини - игры ssdm Программирование и базы данных 11 17-05-2007 02:12
Сравнение VB.NET и Visual C++.NET Commander Программирование и базы данных 5 09-05-2003 19:05




 
Переход