2010-05-17 3 views
3

У меня есть .NET 3.5 SP1 WPF приложение, которое я успешно развертываю на клиентских компьютерах с помощью ClickOnce.Как развернуть приложение ClickOnce .NET 3.5 на компьютере .NET 3.0?

Теперь у меня появилось новое требование - одному из наших клиентов необходимо запустить приложение на машинах, оборудованных только с помощью .NET 3.0, и совершенно невозможно обновить или установить что-либо на машинах. Я уже пытался запустить приложение 3.5 с некоторыми из 3.5 .NET Framework DLL, скопированными в каталог приложений, и это сработало без проблем. Единственная проблема на данный момент - ClickOnce. Я уже сделал это, чтобы включить 3.5 .NET Framework System * DLL-файлы в список файлов приложений, но он всегда прерывает установку на 3.0 машина с этим сообщением об ошибке:..

Не удается установить или запустить приложение , Приложение требует , чтобы сначала была установлена ​​сборка System.Core Version 3.5.0.0 в глобальном сборочном кэше (GAC). Пожалуйста, обратитесь к системному администратору.

Я уже пытался настроить предварительные условия на вкладке «Опубликовать» моего проекта, но никакая комбинация не решила проблему.

Какая часть ClickOnce отвечает за проверку предварительных условий? Я уже пытался развернуть с использованием mageui.exe, но 3.5 .NET Framework все еще присутствует. Что мне следует сделать для ClickOnce, чтобы остановить проверку каких-либо предварительных условий?

Проект создается с помощью Visual Studio 2010.


Я могу только найти причину вопрос - ClickOnce публикации процесса (и MageUI также) создает файл манифеста приложения, который определяет зависимость «предварительным условием» на некоторых 3.5 сборках (System.Core, System.Data.Entity). Поэтому мне просто нужно заставить ClickOnce публиковать/MageUI не генерировать эти зависимости каким-то образом ...

ответ

1

Как насчет использования заглушки .exe, которая нацелена на 3.0 Framework? Вы можете развернуть свое приложение и заглушку в той же установке ClickOnce, с заглушкой в ​​качестве точки входа. Единственной задачей заглушки было бы запустить исполняемый файл 3.5.

Я не уверен, что вы сможете создать этот тип развертывания с помощью Visual Studio. Возможно, вам придется использовать MageUI.

Редактировать
В ответ на ваш комментарий, попробуйте удалить «готовность к установке» запись из файла манифеста. Просто удалите их с помощью текстового редактора, а затем смиритесь с командной строкой Mage.

+1

Я могу просто найти причину проблемы - процесс публикации ClickOnce (и MageUI также) генерирует файл манифеста приложения, который определяет зависимость «preRequisite» на некоторых 3.5 сборках (System.Core, System.Data.Entity). Поэтому мне просто нужно заставить ClickOnce публиковать/MageUI не генерировать эти зависимости каким-то образом ... – Buthrakaur

0

Вы не можете запускать приложение, предназначенное для .NET 3.5, на компьютере без .NET 3.5. Если вы хотите установить это приложение на компьютере, поддерживающем только .NET 3.0, вам придется переопределить целевую инфраструктуру на .NET 3.0 и соответствующим образом изменить ваше обязательное условие.

В решении C# это находится на вкладке «Приложение» для страниц свойств каждого проекта.

В решении VB, IIRC находится на вкладке «Компиляция», «Дополнительные параметры».

+0

Я уверен, что могу запустить приложение 3.5 на машине с 3.0 FW, если я поставлю 3.5 сборки, такие как System.Core.dll, System.ServiceModel.Web. dll, System.ComponentModel.DataAnnotations.dll и т. д. вместе с моими приложениями. – Buthrakaur

+0

Можете ли вы юридически включить отдельную DLL .Net для перераспределения. Как вы можете убедиться, что все зависимые dll включены. Кроме того, он очень нестандартен и не может быть, например, применить патч безопасности от Microsoft с помощью sysadmin. – softveda

+0

Вы правы, конечно, это просто зло. К сожалению, у нашего клиента (крупной корпорации) есть параноидальные IT-правила, которые сохраняют свои версии SW довольно глубокими в истории (они должны использовать IE6, например) и ограничивают любые обновления. – Buthrakaur

0

Я получил это сообщение, потому что я проверил возможность создания ярлыка на рабочем столе - должен был добавить предварительное условие для .NET Framework 3.5 SP1, чтобы исправить это, поэтому вам может потребоваться добавить ярлыки в программу (если это вызывает сообщение, и вы не можете обновить фреймворк)