![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| HarpyWar |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 3.6.2007 Репутация: нет Всего: нет |
Есть программа, написанная в VS2005 с установленным FM 2.0. В системе есть ещё 2 более ранних версий FM.
Возможно ли в проекте изменить версию FM, например, на 1.0, и скомпилировать чтобы пользователь с этой версией смог запускать прогу? Просто у большинства юзеров установлен только первый фреймворк, вместе с системой, а второй качать 20 мб не каждому хочется из инета, чтобы запустить маленькую прогу. |
|||
|
||||
| -ser- |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 1.2.2005 Репутация: 5 Всего: 13 |
добавь XML элемент в конфиг файл.
либо <supportedRuntime>, либо <requiredRuntime> в зависимости от того что тебе нужно. это почти одно и то же, просто первый элемент не поддерживает 1.0. посмотри хелп студии на вышеупомянутые элементы, если будут вопросы <configuration> <startup> <supportedRuntime version="v1.1.4322"/> <!--<requiredRuntime version="v1.0.3705" safemode="true"/--> </startup> </configuration> -------------------- "Тонкая, однако, работа." |
|||
|
||||
| HarpyWar |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 3.6.2007 Репутация: нет Всего: нет |
В директории с проектом создаю App.config с содержимым
Но в папку /bin он не копируется после компиляции, и при запуске на компе с FM 1.1 все-равно требует версию 2.0... Или надо не так? Это сообщение отредактировал(а) HarpyWar - 25.6.2007, 12:22 |
|||
|
||||
| thomas |
|
|||
![]() Доцент... почти ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1385 Регистрация: 3.10.2006 Где: " Сказочное королевство" Репутация: 6 Всего: 65 |
HarpyWar,
У меня примерно такая же проблема. Написал бизнес приложение для клиента на своей машине с FW 2.0 и FW 3.0 в VS 2005. Так на его машине запустить не смог, пока не установил FW2.0. В этом плане у юзеров MS похоже проблемы. Все что написано в новых версиях VS не работаем без соответствующих библиотек на машинах пользователей. А писать приложение в новой студии используя только старую версию FW я думаю не получиться. Вот такие грабли. И это многократно уже обсуждалось: типа как распространять приложение? --> ответ: ставить на машину пользователя соответствующий FW, либо заранее, либо при установке приложения. Тут хоть застрелись -------------------- Крепко жму горло, искренне ваш Thomas. (С)vingrad Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну! Проблемы негров шерифа не волнуют. |
|||
|
||||
| stab |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 22 Всего: 48 |
если в проекте не используется ничего специфичного для fw 2.0 (что маловероятно), можно попробовать скомпилить его с помощью компилятора из более ранних версий. запусти билд проекта в студии (Ctrl+Shift+B или Shift+F6), в Output выведится командная строка компилера:
меняй все "v2.0.50727" на "v1.1.4322" и с командной строки компиль (Win+R, cmd). если повезёт, то всё ок будет. *держит пальцы крестиком* -------------------- 6, 6, 6 - the number of the beast. |
||||
|
|||||
| tol05 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 63 Всего: 170 |
не уверен, что это можно сделать стандартными (не хакерскими
Нагуглил вот что: MSBee MSBuild Toolkit -------------------- На хорошей работе и сны хорошие снятся. |
|||
|
||||
| SilentNick |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 12.6.2007 Репутация: нет Всего: нет |
Сделай Add New Item и выбери там Application Configuration File. (Либо создавай xml файл в папке где лежит программа - WindowsApplication.exe.config). Правда вариант, предложенный -ser-'ом у меня не канает - вываливается ошибка Приложение создало исключение, которое не может быть обработано. |
|||
|
||||
| stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 22 Всего: 48 |
оно и не удивительно, msil второй версии не совместим с первым фреймворком. компилировать надо именно компилером из первого фреймворка. файлы конфигрурации тут не помогут, они работают только при совместимости назад, но не добавляют совместимость вперёд. -------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
| HarpyWar |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 3.6.2007 Репутация: нет Всего: нет |
Добавил конфиг из VS, но всё-равно конечный файл не запускается... Пробовал из командной строки с помощью компилятора FM 1.1 - выходят ошибки. |
|||
|
||||
| stab |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 22 Всего: 48 |
какие? -------------------- 6, 6, 6 - the number of the beast. |
|||
|
||||
| SilentNick |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 12.6.2007 Репутация: нет Всего: нет |
Ну вообщем-то оно и понятно - глупо было предполагать, что с помощью одной строчки приложение, для работы которого необходим второй framework, будет прекрасно работать и с первым... А вот с компиляцией под определенную версию HarpyWar'у придется помучиться, поскольку если изначально приложение писалось под второй framework, там используется много того, чего в первом просто-напросто нету. Вот например простое консольное приложение:
Чтобы его скомпилить компилятором версии 1.1.4322 пришлось убрать ссылку на пространство имен System.Collections.Generic и вызов ReadKey(). Если проект достаточно крупный, но изменять придется довольно таки много (возможно даже придется отказаться от многих вещей, поскольку их нету в предыдущих версиях) |
||||
|
|||||
| -ser- |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 1.2.2005 Репутация: 5 Всего: 13 |
понятное дело, что ранние рантаймы ведать не ведают о том что случилось после них.
и второе, если ты хочешь запускаться в первой версии, то и функциональность проги не должна превышать достижения первой. то есть, ты должен компилировать прогу используя все референсы в проекте на ранние dll, которые находятся в C:\WINDOWS\Microsoft.NET\Framework\vX.x.xxxx\ а конфиг файл говорит, если стоит 2.0, то запустимся под 2.0 или под той которой прикажете, (ты можешь указать приоритеты) но не ранней чем было скомпилировано. прочитай в хелпе студии - How to: Use an Application Configuration File to Target a .NET Framework Version (у меня локально следующая ссылка, возможно у каждого разная) ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.en/dv_fxmigration/html/5247b307-89ca-417b-8dd0-e8f9bd2f4717.htm -------------------- "Тонкая, однако, работа." |
|||
|
||||
| HarpyWar |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 3.6.2007 Репутация: нет Всего: нет |
С конфигурационным XML файлом такого содержания выходит только в C#, а на VB.NET не получается.
Если выставить <requiredRuntime version="v1.0.3705" safemode="true"/>, то с более поздним FM такая прога не запустится, будет требовать именно v1.0 Попробовал простую VB программу откомпилировать через компилятор FM 1.1, выводит ошибки по всему проекту (во вложенном файле). Вообще, я так почитал, что вы пишете, и решил, что результат не стоит таких мучений, особенно редактирования кода для совместимости со старым FM. Ибо все-равно не у всех пользователей установлен даже FM 1.1, и качать новый все-равно придется. Присоединённый файл ( Кол-во скачиваний: 3 )
fm1.1.txt 13,08 Kb |
|||
|
||||
| -ser- |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 344 Регистрация: 1.2.2005 Репутация: 5 Всего: 13 |
да в конце-концов поставляй со своей прогой 2.0-й фреймворк. и не надо им будет качать его. в нете масса инфо как программно проверить какой фреймворк стоит на компе (если тебя нет рядом с клиентом). если ранняя версия, инсталлируй последний. все бесплатно и законно и проще чем гемор с конфигурацией. я сам повелся на вопрос как таковой.
-------------------- "Тонкая, однако, работа." |
|||
|
||||
| Sanguine |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 28.6.2007 Репутация: нет Всего: нет |
Ничего, вот выйдет скоро официальный Orcas, в него сразу эту функцию встроили - под какой Framework разрабатываешь... Он и И функционал по версии обрубает, и вообще все замечательно... И будем компилить хоть под 1.0, 1.1, 2.0, 3.0, или 3,5 без гемору. Скорее бы уже.
|
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |