Re[6]: ClickOnce вручную - у кого-нибудь заработало?
От: vmpire Россия  
Дата: 23.06.10 20:33
Оценка:
Здравствуйте, blackhearted, Вы писали:

B>

B>2010-06-23 19:37:55 109.255.12.74 GET /MyApp — 80 — 109.255.12.74 — 301 0 0 1
B>2010-06-23 19:37:55 109.255.12.74 GET /MyApp/ — 80 — 109.255.12.74 — 403 14 0 9


B>/MyApp и /MyApp/ , ИМХО, слегка разные места.

Это не важно, он ни в одно из них лезть не должен
Re[5]: ClickOnce вручную - у кого-нибудь заработало?
От: vmpire Россия  
Дата: 23.06.10 20:35
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, vmpire, Вы писали:


V>>Это ошибка доступа. Смотрите на Server1 логи IIS (под кем и куда идёт запрос) и свойства виртуальной директории.


А>вот смотрю


А>
А>2010-06-23 19:35:59 109.255.12.74 GET /MyApp/MyApp.application - 80 - 109.255.12.74 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+6.1;+WOW64;+Trident/4.0;+SLCC2;+.NET+CLR+2.0.50727;+.NET+CLR+3.5.30729;+.NET+CLR+3.0.30729;+.NET4.0C;+.NET4.0E;+InfoPath.3) 200 0 0 24
А>2010-06-23 19:35:59 109.255.12.74 GET /MyApp/MyApp.application - 80 - 109.255.12.74 - 200 0 0 17
А>2010-06-23 19:35:59 109.255.12.74 GET /MyApp/MyApp.application - 80 - 109.255.12.74 - 200 0 0 0
А>2010-06-23 19:35:59 109.255.12.74 GET /MyApp/Application+Files/MyApp_1_0_0_0/MyApp.exe.manifest - 80 - 109.255.12.74 - 200 0 0 5
А>2010-06-23 19:37:55 109.255.12.74 GET /MyApp/MyApp.application - 80 - 109.255.12.74 - 200 0 0 28
А>2010-06-23 19:37:55 109.255.12.74 GET /MyApp - 80 - 109.255.12.74 - 301 0 0 1
А>2010-06-23 19:37:55 109.255.12.74 GET /MyApp/ - 80 - 109.255.12.74 - 403 14 0 9
А>


А>вижу что лезет /MyApp и получает отлуп — но почему он туда лезет? — не понятно

А>права на эту директорию есть и студийный clickonce отсюда работает
Похоже на некорректные данные в манифесте. Сравните свой манифест (оба) с генерёнными студией
Re[6]: ClickOnce вручную - у кого-нибудь заработало?
От: Аноним  
Дата: 23.06.10 20:35
Оценка:
А>>а почему такая разница — никак не пойму (((((
V>А манифесты студийный и самодельный одинаковые? Посмотрите, в чём между ними разница

Разние ну как-минимум на Sute Name, а вообще постараюсь найти отличия... (
Re[7]: ClickOnce вручную - у кого-нибудь заработало?
От: vmpire Россия  
Дата: 23.06.10 20:39
Оценка:
Здравствуйте, Аноним, Вы писали:

А>>>а почему такая разница — никак не пойму (((((

V>>А манифесты студийный и самодельный одинаковые? Посмотрите, в чём между ними разница

А>Разние ну как-минимум на Sute Name, а вообще постараюсь найти отличия... (

Suite name влиять не лолжен. Смотрете на всякие URLы и имена сборок.
Кстати, на время экспериментов рекомендую убрать -MinVersion 1.0.0.0, и все необязательные параметры мало ли что...
Re[6]: ClickOnce вручную - у кого-нибудь заработало?
От: Аноним  
Дата: 23.06.10 20:58
Оценка:
Здравствуйте, vmpire, Вы писали:

V>А манифесты студийный и самодельный одинаковые? Посмотрите, в чём между ними разница


манифесты очень разные,а почему такая разница — никак не пойму (((((

Можете глянуть на 2 версии VS версия и Mage версия
Re[6]: ClickOnce вручную - у кого-нибудь заработало?
От: Аноним  
Дата: 23.06.10 21:03
Оценка:
А>>вижу что лезет /MyApp и получает отлуп — но почему он туда лезет? — не понятно
А>>права на эту директорию есть и студийный clickonce отсюда работает
V>Похоже на некорректные данные в манифесте. Сравните свой манифест (оба) с генерёнными студией

манифесты очень разные,а почему такая разница — никак не пойму (((((

Можете глянуть на 2 версии VS версия и Mage версия
Re[7]: ClickOnce вручную - у кого-нибудь заработало?
От: vmpire Россия  
Дата: 24.06.10 10:41
Оценка:
Здравствуйте, Аноним, Вы писали:

А>>>вижу что лезет /MyApp и получает отлуп — но почему он туда лезет? — не понятно

А>>>права на эту директорию есть и студийный clickonce отсюда работает
V>>Похоже на некорректные данные в манифесте. Сравните свой манифест (оба) с генерёнными студией

А>манифесты очень разные,а почему такая разница — никак не пойму (((((


А>Можете глянуть на 2 версии VS версия и Mage версия

Меня смущает, что в Вашем mage-манифесте странно объявлен entryPoint:
<entryPoint>
<co.v1:customHostSpecified />
</entryPoint>

Когда я использую mage у меня entry point генерируется нормально, примерно как у Вас в VS манифесте.
Попробуйте убрать ВСЕ дополнительные опции, оставив только New, FromDirectory, ToFile и UseManifestForTrust
Re[8]: ClickOnce вручную - у кого-нибудь заработало?
От: Аноним  
Дата: 24.06.10 11:34
Оценка:
V>Когда я использую mage у меня entry point генерируется нормально, примерно как у Вас в VS манифесте.
V>Попробуйте убрать ВСЕ дополнительные опции, оставив только New, FromDirectory, ToFile и UseManifestForTrust

ОСтавил:

Mage -New Application -FromDirectory "app.publish\Application Files\MyApp_1_0_0_0" -Version 1.0.0.0 -ToFile "app.publish\Application Files\MyApp_1_0_0_0\ЬнФзз.exe.manifest"


и вот что в манифесте

  <entryPoint>
    <co.v1:customHostSpecified />
  </entryPoint>


хотя при построении манифеста выскакивает такое вот сообщение


Warning MSB3178: Assembly '...\app.publish\Application Files\MyApp_1_0_0_0\MyApp.exe' is incorrectly specified as a file.
Warning MSB3178: Assembly '...\app.publish\Application Files\MyApp_1_0_0_0\Shares.dll' is incorrectly specified as a file.

MyApp.exe.manifest successfully created. However, some errors were encountered.


'...\' — это я убрал длинный путь для публикации
Re[9]: ClickOnce вручную - у кого-нибудь заработало?
От: vmpire Россия  
Дата: 24.06.10 12:38
Оценка:
Здравствуйте, Аноним, Вы писали:


А>ОСтавил:


А>
А>Mage -New Application -FromDirectory "app.publish\Application Files\MyApp_1_0_0_0" -Version 1.0.0.0 -ToFile "app.publish\Application Files\MyApp_1_0_0_0\ЬнФзз.exe.manifest"
А>



А>и вот что в манифесте


А>
А>  <entryPoint>
А>    <co.v1:customHostSpecified />
А>  </entryPoint>
А>


А>хотя при построении манифеста выскакивает такое вот сообщение


А>
А>Warning MSB3178: Assembly '...\app.publish\Application Files\MyApp_1_0_0_0\MyApp.exe' is incorrectly specified as a file.
А>Warning MSB3178: Assembly '...\app.publish\Application Files\MyApp_1_0_0_0\Shares.dll' is incorrectly specified as a file.

А>MyApp.exe.manifest successfully created. However, some errors were encountered.
А>

Вот почти и докопались. Mage распознаёт MyApp.exe как просто файл, а не ассемблю. Соответственно, он не включает её в entryPoint и клиент по ссылке уходит в никуда.
К сожалению, я с такой проблемой не сталкивался, поэтому могу только предполагать:
— Убедитесь, что в каталоге "app.publish\Application Files\MyApp_1_0_0_0" все файлы лежат с их оригинальными расширениями (не с .deploy)
— Посмотрите, чем отличается Shares.dll от других .dll, которые не дают warning (версия .NET runtime, права доступа, read-only, расширение, подпись... не знаю что, но что-то должно быть)
— Проверьте MyApp.exe по тому же списку. Что-то в ней есть особенное
— Проверьте, что используется та же версия mage, что и в VS
Re[10]: ClickOnce вручную - у кого-нибудь заработало?
От: Аноним  
Дата: 24.06.10 16:22
Оценка:
начал ковырять — оказывается Mage не понимает файлы скомпилированные под .Net 4
поменял платформу для shares.dll на .Net3.5 — перестала ошибка вываливаться, но основное приложение завязано на новые фичи .Net 4.0!!!

Mage беру из установленного мной MicrosoftSDK 7.1 64битной (Винда 64битная)
Re[10]: ClickOnce вручную - у кого-нибудь заработало?
От: Аноним  
Дата: 24.06.10 16:33
Оценка:
Попробовал и Mage из SDK 7.0A(х86) — результат печальный тот же
Re[11]: ClickOnce вручную - у кого-нибудь заработало?
От: vmpire Россия  
Дата: 24.06.10 17:18
Оценка:
Здравствуйте, Аноним, Вы писали:

А>начал ковырять — оказывается Mage не понимает файлы скомпилированные под .Net 4

А>поменял платформу для shares.dll на .Net3.5 — перестала ошибка вываливаться, но основное приложение завязано на новые фичи .Net 4.0!!!

А>Mage беру из установленного мной MicrosoftSDK 7.1 64битной (Винда 64битная)

Так, значит, одно из предположений (про рантайм) оказалось правильным.
Значит, надо добыть mage для .net 4.0.
Или, если это не получится, пробовать другие варианты:
1. Делать деплой студией во временный каталог, там апдейтить манифесты как надо и переподписывать
2. Или делать всё это средствами MSBuild: написать .proj файл, который импортирует основной проект, вызывает таску PublishOnly и определяет таску AfterPublish.
Я пробовал оба варианта, они рабочие. Оба базируются на том, что создание деплоемента будет делаться точно так же, как из студии.
Re[12]: ClickOnce вручную - у кого-нибудь заработало?
От: Аноним  
Дата: 24.06.10 18:02
Оценка:
V>Значит, надо добыть mage для .net 4.0.

ну вот я же взял последний SDK!!!

V>Или, если это не получится, пробовать другие варианты:

V>1. Делать деплой студией во временный каталог, там апдейтить манифесты как надо и переподписывать
V>2. Или делать всё это средствами MSBuild: написать .proj файл, который импортирует основной проект, вызывает таску PublishOnly и определяет таску AfterPublish.
V>Я пробовал оба варианта, они рабочие. Оба базируются на том, что создание деплоемента будет делаться точно так же, как из студии.

проблема в том что я завязался с Mage потому что нам нужно обфусцировать приложение перед деплойментом
Я пробовал на postBuild событие вставлять обфускацию, но студия после обфускации удаляет обфусцированные файлы и опять подсовывает свои!!

Что мне делать?
Re[13]: ClickOnce вручную - у кого-нибудь заработало?
От: vmpire Россия  
Дата: 24.06.10 18:25
Оценка:
Здравствуйте, Аноним, Вы писали:

V>>Значит, надо добыть mage для .net 4.0.


А>ну вот я же взял последний SDK!!!


V>>Или, если это не получится, пробовать другие варианты:

V>>1. Делать деплой студией во временный каталог, там апдейтить манифесты как надо и переподписывать
V>>2. Или делать всё это средствами MSBuild: написать .proj файл, который импортирует основной проект, вызывает таску PublishOnly и определяет таску AfterPublish.
V>>Я пробовал оба варианта, они рабочие. Оба базируются на том, что создание деплоемента будет делаться точно так же, как из студии.

А>проблема в том что я завязался с Mage потому что нам нужно обфусцировать приложение перед деплойментом

А>Я пробовал на postBuild событие вставлять обфускацию, но студия после обфускации удаляет обфусцированные файлы и опять подсовывает свои!!

А>Что мне делать?

Так любой из этих двух предложенных мной вариантов подойдёт:

1. Делаете deploy во временный каталог. Студия при этом формирует правильный манифест и дописывает расширение .deploy к файлам
Потом батником убираете .deploy, обфусцируете то, что надо, правите манифест (support url там, всё такое...) через mage.exe — Update. При этом, естественно, нарушается подпись, которую затем восстанавливаете через mage.exe — Sign тем же батником.

2. Пишете .proj файл. В начале = <Import Project="ваш проект.csproj" />
Объявляете там же таску <Target Name="AfterPublish">, где издеваетесь над уже запаблишенными файлами как душе угодно. Там, естественно, будут доступны все настройки проекта, что заодно позволит не хранить их в двух местах. Когда вдоволь наиздевались- вызываете тут же <SignFile> последовательно для обоих манифестов.
В общем, полсотни строк .proj файла и имеете полный контроль над процессом. Полученный .proj можно запускать MSBuild-ом даже при отсутствии VS.

Хотя, сдаётся мне, что правильный mage в природе есть...
Re[14]: ClickOnce вручную - у кого-нибудь заработало?
От: Аноним  
Дата: 24.06.10 18:38
Оценка:
V>1. Делаете deploy во временный каталог. Студия при этом формирует правильный манифест и дописывает расширение .deploy к файлам
V>Потом батником убираете .deploy, обфусцируете то, что надо, правите манифест (support url там, всё такое...) через mage.exe — Update. При этом, естественно, нарушается подпись, которую затем восстанавливаете через mage.exe — Sign тем же батником.

V>2. Пишете .proj файл. В начале = <Import Project="ваш проект.csproj" />

V>Объявляете там же таску <Target Name="AfterPublish">, где издеваетесь над уже запаблишенными файлами как душе угодно. Там, естественно, будут доступны все настройки проекта, что заодно позволит не хранить их в двух местах. Когда вдоволь наиздевались- вызываете тут же <SignFile> последовательно для обоих манифестов.
V>В общем, полсотни строк .proj файла и имеете полный контроль над процессом. Полученный .proj можно запускать MSBuild-ом даже при отсутствии VS.

V>Хотя, сдаётся мне, что правильный mage в природе есть...


Спасибо за помощь — я остановлюсь на 1м варианте
про правильный mage уж и не знаю ... )) подожду ответа Петра Алексеева с techdays.ru — он там доклад толковый выложил по ClickOnce
Re[14]: ClickOnce вручную - у кого-нибудь заработало?
От: Аноним  
Дата: 24.06.10 18:47
Оценка:
V>1. Делаете deploy во временный каталог. Студия при этом формирует правильный манифест и дописывает расширение .deploy к файлам
V>Потом батником убираете .deploy, обфусцируете то, что надо, правите манифест (support url там, всё такое...) через mage.exe — Update. При этом, естественно, нарушается подпись, которую затем восстанавливаете через mage.exe — Sign тем же батником.

правильно я понял ?
-убираете .deploy
-я обфусцирую сгенеренный студией проект
-затем переподписываю манфест приложения
-затем подписываю манифест распространения
-добавляю .deploy

странно, а студия собирает деплоймент проект получается не с помощью mage?
Re[15]: ClickOnce вручную - у кого-нибудь заработало?
От: vmpire Россия  
Дата: 24.06.10 19:15
Оценка:
Здравствуйте, Аноним, Вы писали:

V>>1. Делаете deploy во временный каталог. Студия при этом формирует правильный манифест и дописывает расширение .deploy к файлам

V>>Потом батником убираете .deploy, обфусцируете то, что надо, правите манифест (support url там, всё такое...) через mage.exe — Update. При этом, естественно, нарушается подпись, которую затем восстанавливаете через mage.exe — Sign тем же батником.

А>правильно я понял ?

А>-убираете .deploy
А>-я обфусцирую сгенеренный студией проект
А>-затем переподписываю манфест приложения
А>-затем подписываю манифест распространения
А>-добавляю .deploy
Да, почти.
.deploy надо добавлять до подписей манифестов. Хотя, в принципе, их можно и вообще не добавлять.

А>странно, а студия собирает деплоймент проект получается не с помощью mage?

Если копнуть вглубь — она использует таски MSBuild, которые используют классы из Microsoft.Build.Tasks.Deployment.ManifestUtilities
Отсюда, кстати, третий вариант: можно всё написать на С#
Re[16]: ClickOnce вручную - у кого-нибудь заработало?
От: Аноним  
Дата: 24.06.10 20:15
Оценка:
А>>странно, а студия собирает деплоймент проект получается не с помощью mage?
V>Если копнуть вглубь — она использует таски MSBuild, которые используют классы из Microsoft.Build.Tasks.Deployment.ManifestUtilities
V>Отсюда, кстати, третий вариант: можно всё написать на С#

Рад бы им воспользоваться, но где взять описание — на МСДН этож не описание, а называется догадайся сам как все это использовать
Re[14]: ClickOnce вручную - у кого-нибудь заработало?
От: Аноним  
Дата: 24.06.10 21:37
Оценка:
V>1. Делаете deploy во временный каталог. Студия при этом формирует правильный манифест и дописывает расширение .deploy к файлам
V>Потом батником убираете .deploy, обфусцируете то, что надо, правите манифест (support url там, всё такое...) через mage.exe — Update. При этом, естественно, нарушается подпись, которую затем восстанавливаете через mage.exe — Sign тем же батником.

К сожалению такой вариант не проходит — mage портит манифест!!!! очень грустно что такие глюки еще не исправили — или так обеспечивается конкурентное преимущество?? )))
Re[13]: ClickOnce вручную - у кого-нибудь заработало?
От: Shota  
Дата: 25.06.10 02:03
Оценка:
Здравствуйте, Аноним, Вы писали:

А>проблема в том что я завязался с Mage потому что нам нужно обфусцировать приложение перед деплойментом


Точно такая же проблема возникала с ClickOnce, успешно решилась вот так. Собираем СО-проект прямо из студии, кнопкой Publish. Mage в свое время был отвергнут как неюзабельный Разборки с Mage в свое время были отвергнуты ак бесперспективные
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.