2014-01-13 1 views
0

У меня есть утилита для Windows, которая предназначена для .NET Framework 4.5 в Visual Studio, и я опубликовал ее с помощью ClickOnce. Поэтому, если кто-то пытается загрузить и запустить инструмент, он ожидает, что на компьютерах клиента будет установлено 4.5 Framework на своей машине. Однако я не хочу, чтобы все клиенты обновляли свои компьютеры до 4.5, вместо этого я хочу изменить целевую структуру при публикации инструмента. Так что есть способ изменить только целевую структуру развертывания, поскольку я не хочу менять проект VS.Изменить целевую структуру ClickOnce Deployment

Я попытался изменить файл конфигурации, чтобы установить фреймворк 4.0, но когда я запустил инструмент, он обнаружил ошибку несоответствия сигнатур. Поскольку файл конфигурации будет изменен при каждом создании проекта, я думаю, что мы должны каким-то образом установить целевую структуру как часть самого проекта сборки TFS. Мой текущий TFS Build.proj показан как

<MSBuild Projects="$(SolutionRoot)\Client\Windows\Utility Tool\Utility Tool.csproj"  
Targets="Build;Publish;Package" 
Properties="Configuration=Release;BuildEnvironment=.QA;WarningsNotAsErrors=618,168; 
ApplicationVersion=$(CurrentAssemblyVersionText); 
PublishURL=https://mycompany.com/myeut/"/> 

ответ

0

Вам не повезло с IE9 и более поздними версиями. До этого, Http-запрос переносился .NET-инфраструктурой внутри своих иерархий свойств. Но с IE9 Microsoft стандартизировала информацию в свойстве UserAgent [я думаю]. Поскольку IE не соответствовал правилам браузеров и другим браузерам, они не включали эту информацию.

Что вы можете «попытаться сделать» - это создать программу загрузки ClickOnce в FW 2.0, которая будет работать, проверьте машину на установленные фреймворки. И я даже не уверен, что это будет работать, потому что у вас очень ограниченный доступ к машине при развертывании ClickOnce, вы находитесь в изолированной программной среде Интернета. Но если это возможно, ваш загрузчик может загрузить правильный кэш приложений и запустить приложение.

Верьте или нет, я работал над проектом вроде этого, но после IE9 мы просто установили предварительное условие .Net framework в руководство по продукту.