Re[24]: 32/64/AnyCPU - что за @$^%$?
От: · Великобритания  
Дата: 13.10.16 22:21
Оценка:
Здравствуйте, alexzzzz, Вы писали:

A>·>Ну наверное Микрософту делать нечего было, ну и запилили на выходных эту тулзу ради прикола.

A>Сами решают свои проблемы сами, не сваливая на пользователя.
Ты сам-то читал?
"Recommended Method: Run the Microsoft utility to repair corrupted registry keys". А уж если и это мелкомягкое поделие не сработает, можно и ручками один ключик реестра прибить.
Ява тут не причём. Это мелкомягкий MSI жжот напалмом и microsoft recommended way изготовления инсталлеров, без которого беджик "Certified for Microsoft Windows" не получишь.

A>В реестре. Из-за которых Java всё ещё висела в списке установленных программ, и из-за которых java-программа, которую я скачал для проверки, при запуске писала что-то типа «Ява вроде есть, а вроде и нет, запускаться не буду».

Не пользуйся виндой или смирись.
Кстати, отсюда http://www.oracle.com/technetwork/java/javase/downloads/ можно скачать jre-*-windows-*.tar.gz

A>·>Т.е. "/platform (C# Compiler Options)" это не опция компилятора, т.е. тулзы, которая компилирует?

A>Кто тебя требует её указывать во время компиляции? Никто. Хочешь принять решение позже? Принимай. Хочешь изменить уже принятое решение? Изменяй.
Зачем тогда опция?

A>
/out:<file>                   Specify output file name (default: base name of
A>                              file with main class or first file)

A>К опции out есть аналогичные претензии?
Нет, ибо современные компьютеры данные хранят в файлах. Вывод компилятора — данные, данные без имени файла сохранять некуда.

A>А что, к IL отношения не имеет, но тем не менее зачем-то является опцией компилятора. Можно не указывать, но значение по умолчанию будет всё равно. Какой идиот придумал указывать имя файла на стадии компиляции?

Это имя артефкта выдаваемого процессом компиляции.

A>Можно ведь задавать правильное имя файлу во время деплоимента. Собрать специальный инсталлятор, чтобы он выставлял правильное имя файла прямо на машине пользователя. А также делал два ярлычка на рабочем столе.

Имя файла не влияет на работоспособность программы, флажок — влияет.

A>>>Конкретно такой комбинации не бывает, чтобы «x86+x64, но не ARM и Itanium». Там либо конкретная платформа, на которую программа заточена, либо AnyCPU.

A>·>Комбинация, очевидно, бывает. Заточить программу можно под некое подмножество платформ. Просто компилятор так не умеет.
A>А зачем? У тебя есть волшебная нативная dll, код которой можно загрузить и в x86-процесс, и в x64-процесс и он везде будет работать?
У меня есть две длл, под обе intel платформы, но нет под ARM/Itanium. Шо делать?
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[23]: 32/64/AnyCPU - что за @$^%$?
От: fddima  
Дата: 14.10.16 05:56
Оценка:
Здравствуйте, ·, Вы писали:

·>Ещё раз повторяю. java-софт для домохозяек обычно распространяется с bundled jvm, нужной версии с нужными native и т.п. — предсказуемее некуда, распаковывешь и запускаешь. О таком в .net только мечтать с их монструозным установщиками, которые втыкаются по самые гланды в систему, обязательно требуя админских прав, и как же без ребутов...


1. Современные установщики ничего не бандлят, и скачивают при необходимости.
2. При необходимости offline-инсталляции установщики подготавливают образ. (но домохозяйке это не нужно)
Так что можешььповторять дальше свою мантру.

То ли в Яве: скачали клиент банк, установили, а через месяц он не запускается, потому, что Яву все так ахренительно бандлят, что аж генерят ярлыки с гвоздями прибитыми путями. Разумеется после апдейта — они уплывают.
Re[24]: 32/64/AnyCPU - что за @$^%$?
От: · Великобритания  
Дата: 14.10.16 09:13
Оценка:
Здравствуйте, fddima, Вы писали:

F>·>Ещё раз повторяю. java-софт для домохозяек обычно распространяется с bundled jvm, нужной версии с нужными native и т.п. — предсказуемее некуда, распаковывешь и запускаешь. О таком в .net только мечтать с их монструозным установщиками, которые втыкаются по самые гланды в систему, обязательно требуя админских прав, и как же без ребутов...

F> 1. Современные установщики ничего не бандлят, и скачивают при необходимости.
Если так нравится, есть java online installer.
А я вот ненавижу эти online инсталлеры.

F> 2. При необходимости offline-инсталляции установщики подготавливают образ. (но домохозяйке это не нужно)

Круто, а ещё можно стоя в гамаке. Настоящий комсомолец?

F> Так что можешььповторять дальше свою мантру.

А как насчёт обязательности админских прав?

F> То ли в Яве: скачали клиент банк, установили, а через месяц он не запускается, потому, что Яву все так ахренительно бандлят, что аж генерят ярлыки с гвоздями прибитыми путями. Разумеется после апдейта — они уплывают.

Ничё не понял. Гвоздями что угодно прибить можно к чему угодно. Просто не делайте так.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[25]: 32/64/AnyCPU - что за @$^%$?
От: fddima  
Дата: 14.10.16 11:32
Оценка:
Здравствуйте, ·, Вы писали:

·>А я вот ненавижу эти online инсталлеры.

Тем не менее они есть. Онлайн инсталлеры, обновления и прочие прелести жизни... без них уже не то. Я сам их недолюбливаю, но ту же студию чаще всего ставлю именно ими.

F>> 2. При необходимости offline-инсталляции установщики подготавливают образ. (но домохозяйке это не нужно)

·>Круто, а ещё можно стоя в гамаке. Настоящий комсомолец?
В чем конкретно проблемы?

F>> Так что можешььповторять дальше свою мантру.

·>А как насчёт обязательности админских прав?
Они нужны только когда мы хотим установить специфичные системные обновления (читай .net fw). Это приблизитель так же как требовать от apt устанавливать апдейты без рута. В остальных случаях ставить ничего не нужно, а fw уже на борту. Тут то и рулят онлайн инсталлеры, т.к. позволяют сократить размер дистрибутива, сохранив функциональность. В бандле ничего плохого тоже теоретически нет, но тогда обновлениями рантайма и стандартными библиотеками должен заниматься ты. Так что вопрос явно не неоднозначен.

·>Ничё не понял. Гвоздями что угодно прибить можно к чему угодно. Просто не делайте так.

Я с таким сталкивался, порадовало. Видимо разработчики не в курсе про ваш обычный бандлинг. Это конечно же все потому что вокруг одни... У множества задач более одного правильного решения.
Re[26]: 32/64/AnyCPU - что за @$^%$?
От: · Великобритания  
Дата: 14.10.16 11:56
Оценка:
Здравствуйте, fddima, Вы писали:

F>·>А я вот ненавижу эти online инсталлеры.

F> Тем не менее они есть. Онлайн инсталлеры, обновления и прочие прелести жизни... без них уже не то. Я сам их недолюбливаю, но ту же студию чаще всего ставлю именно ими.
Это прелести плохой жизни... до сих пор нормального пакетного менеджера не изобрели в ms.

F>>> 2. При необходимости offline-инсталляции установщики подготавливают образ. (но домохозяйке это не нужно)

F>·>Круто, а ещё можно стоя в гамаке. Настоящий комсомолец?
F> В чем конкретно проблемы?
Зачем что-то подготавливать, когда можно строить сразу готовый в процессе билда? KISS, не?

F>·>А как насчёт обязательности админских прав?

F> Они нужны только когда мы хотим установить специфичные системные обновления (читай .net fw). Это приблизитель так же как требовать от apt устанавливать апдейты без рута.
Когда рута нет, есть возможность вручную скачать/распаковать.

F> В остальных случаях ставить ничего не нужно, а fw уже на борту.

Он может быть не той версии.

F> Тут то и рулят онлайн инсталлеры, т.к. позволяют сократить размер дистрибутива, сохранив функциональность. В бандле ничего плохого тоже теоретически нет, но тогда обновлениями рантайма и стандартными библиотеками должен заниматься ты. Так что вопрос явно не неоднозначен.

Нифига они не рулят, просто выкручиваются как могут из-за отстутствия пакетного менеджера.

F>·>Ничё не понял. Гвоздями что угодно прибить можно к чему угодно. Просто не делайте так.

F> Я с таким сталкивался, порадовало. Видимо разработчики не в курсе про ваш обычный бандлинг. Это конечно же все потому что вокруг одни... У множества задач более одного правильного решения.
И ещё больше неправильных. Прибивать что-то гвоздями — неправильное где угодно, даже в java.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[27]: 32/64/AnyCPU - что за @$^%$?
От: fddima  
Дата: 14.10.16 12:33
Оценка:
Здравствуйте, ·, Вы писали:

·>Это прелести плохой жизни... до сих пор нормального пакетного менеджера не изобрели в ms.

Но есть работающее решение для системных обновлений куда входит дотнет.

F>> В чем конкретно проблемы?

·>Зачем что-то подготавливать, когда можно строить сразу готовый в процессе билда? KISS, не?
Зачем включать то, что является компонентом системы?

·>Когда рута нет, есть возможность вручную скачать/распаковать.

Ага, а поставить возможности толком нет.

F>> В остальных случаях ставить ничего не нужно, а fw уже на борту.

·>Он может быть не той версии.
Вот если он не той, только тогда и нужно спрашивать обновление и права админа. Вообще — идея ставить программы только под админом вовсе не порочна.

·>Нифига они не рулят, просто выкручиваются как могут из-за отстутствия пакетного менеджера.

Пакетные менеджеры сдуваются на конфликтах system-wide библиотек. В итоге бандлить чаще проще, что несколько ограничивает его применимость. В линуксах оно работает от того, что репозиторий фактически один центральный. Всякие внешние (дополнительные) источники, безусловно удобны, но как только появляются конфликты — оно перестает быть удобным. В итоге путь анархии — практически показал что это просто работает. А вот попытки контроллировать деплоймент централизованно (всякие сторы) — уже сложнее, чем могло-бы быть. KISS же.

·>И ещё больше неправильных. Прибивать что-то гвоздями — неправильное где угодно, даже в java.

То что кто-то что-то делает не так, — случается везде. Но с дотнетом описанной проблемы в принципе нет. Есть набор версий, да и то, защита от дурака встроенная, так что юзер сможет внятно обратиться в саппорт. Сама установка и последующие обновления дотнета — это то чем можно не ломать себе голову, и это плюс. Все что поверх — нужно делать руками, к счастью по части деплоймента в third party по большей мере все реализовано. По крайней мере это не то что 10+ лет назад, когда действительно надо было бандлить и фреймворк, и ставить специфичные фиксы на него.
Re[27]: 32/64/AnyCPU - что за @$^%$?
От: Sinix  
Дата: 14.10.16 12:54
Оценка: +1
Здравствуйте, ·, Вы писали:

·>Это прелести плохой жизни... до сих пор нормального пакетного менеджера не изобрели в ms.


без обид, но с разморозкой)))
https://chocolatey.org/install
и https://chocolatey.org/docs/features-infrastructure-automation для энтрпрайза, как пример —
https://puppet.com/blog/chocolatey-hosting-your-own-server

Все остальные претензии к дотнету из той же серии. Не надо так.
Re[28]: 32/64/AnyCPU - что за @$^%$?
От: · Великобритания  
Дата: 14.10.16 13:35
Оценка:
Здравствуйте, fddima, Вы писали:

F>·>Это прелести плохой жизни... до сих пор нормального пакетного менеджера не изобрели в ms.

F> Но есть работающее решение для системных обновлений куда входит дотнет.
Работающее не лучше (а точнее хуже), чем сдувающиеся пакетные менеджеры.

F>·>Зачем что-то подготавливать, когда можно строить сразу готовый в процессе билда? KISS, не?

F> Зачем включать то, что является компонентом системы?
Так в том-то и дело, что оно _может_ являться компонентом системы, если очень хочеися, но _не должно_. Чем от меньшего числа компонент системы зависит некий софт — тем лучше.

F>·>Когда рута нет, есть возможность вручную скачать/распаковать.

F> Ага, а поставить возможности толком нет.
Что значит "толком поставить"? Запускается и работает — этого не достаточно? Обязательно заколачивать в систему по самые гланды? Зачем?

F>·>Он может быть не той версии.

F> Вот если он не той, только тогда и нужно спрашивать обновление и права админа. Вообще — идея ставить программы только под админом вовсе не порочна.
Она не порочна если абсолютно всё ставится из-под админа и никак по-другому ничего сделать нельзя. А в таком виде это тупо палки в колёса.

F>·>Нифига они не рулят, просто выкручиваются как могут из-за отстутствия пакетного менеджера.

F> Пакетные менеджеры сдуваются на конфликтах system-wide библиотек. В итоге бандлить чаще проще, что несколько ограничивает его применимость. В линуксах оно работает от того, что репозиторий фактически один центральный. Всякие внешние (дополнительные) источники, безусловно удобны, но как только появляются конфликты — оно перестает быть удобным. В итоге путь анархии — практически показал что это просто работает. А вот попытки контроллировать деплоймент централизованно (всякие сторы) — уже сложнее, чем могло-бы быть. KISS же.
dll и прочий hell? Не, не слышал.

F>·>И ещё больше неправильных. Прибивать что-то гвоздями — неправильное где угодно, даже в java.

F> То что кто-то что-то делает не так, — случается везде. Но с дотнетом описанной проблемы в принципе нет. Есть набор версий, да и то, защита от дурака встроенная, так что юзер сможет внятно обратиться в саппорт. Сама установка и последующие обновления дотнета — это то чем можно не ломать себе голову, и это плюс. Все что поверх — нужно делать руками, к счастью по части деплоймента в third party по большей мере все реализовано. По крайней мере это не то что 10+ лет назад, когда действительно надо было бандлить и фреймворк, и ставить специфичные фиксы на него.
Так для изврлюбителей и java есть ставящаяся в систему, с автообновлялкой и с теми же присущими глюками и заморочками.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[29]: 32/64/AnyCPU - что за @$^%$?
От: fddima  
Дата: 14.10.16 14:04
Оценка:
Здравствуйте, ·, Вы писали:

·>Работающее не лучше (а точнее хуже), чем сдувающиеся пакетные менеджеры.

Но это данность. Хуже — на мой взгляд — да. Но работают они хорошо (отлично?).

·>Так в том-то и дело, что оно _может_ являться компонентом системы, если очень хочеися, но _не должно_. Чем от меньшего числа компонент системы зависит некий софт — тем лучше.

Нет, — дотнет неотъемлимый компонент целого ряда версий систем (и всех современных десктопных). Даже загрузчик модулей распознает дотнет модули. Правильно ли было делать так — вопрос иного толка, я совсем выше в этом топике кажется писал, но если кратко — мне лично, нравятся внешние интерпретаторы больше, но и плюсы от нативной интеграции есть.

F>>·>Когда рута нет, есть возможность вручную скачать/распаковать.

F>> Ага, а поставить возможности толком нет.
·>Что значит "толком поставить"? Запускается и работает — этого не достаточно? Обязательно заколачивать в систему по самые гланды? Зачем?
А если не запускается? Исполнимый модуль, например, банально импортирует модуль по абсолютному пути (для записи смертным недоступный). Нужно уже совершать доп действия (например подредактировать шелл скрипт дабы втюхнуть переменные). Да и вообще там не простое копирование встречается. Просить от дотнета того же — странно. .net core теоретически можно бандлить (не знаю как просто это сделать, баловался только с ембедом рантайма в нэйтив).

F>>·>Он может быть не той версии.

F>> Вот если он не той, только тогда и нужно спрашивать обновление и права админа. Вообще — идея ставить программы только под админом вовсе не порочна.
·>Она не порочна если абсолютно всё ставится из-под админа и никак по-другому ничего сделать нельзя. А в таком виде это тупо палки в колёса.
Везде по сути можно ставить программы без админских прав, с теми или иными ограничениями. Иначе это не комп а плеер/читалка/кому что по душе. Не все права даются юзеру, некоторый софт просто неспособен работать без соответствующих прав. В итоге неясно с чего такое безапелляционно е утверждение.

F>>·>Нифига они не рулят, просто выкручиваются как могут из-за отстутствия пакетного менеджера.

F>> Пакетные менеджеры сдуваются на конфликтах system-wide библиотек. В итоге бандлить чаще проще, что несколько ограничивает его применимость. В линуксах оно работает от того, что репозиторий фактически один центральный. Всякие внешние (дополнительные) источники, безусловно удобны, но как только появляются конфликты — оно перестает быть удобным. В итоге путь анархии — практически показал что это просто работает. А вот попытки контроллировать деплоймент централизованно (всякие сторы) — уже сложнее, чем могло-бы быть. KISS же.
·>dll и прочий hell? Не, не слышал.
Нет, не слышал. Приватные зависимости носим с собой. Разве ад возникал не из-за тупого деплоймента?

·>Так для изврлюбителей и java есть ставящаяся в систему, с автообновлялкой и с теми же присущими глюками и заморочками.

Так и отлично. Просто в фаре набираю java ... и этого на винде мне хватает. Зачем бандлить рантайм для программы весом в метр. Тем кому важен специфичный рантайм бандлят. Но это скорее от неизбежности, так просто проще. Но с дотнетом этого не нужно.
Re[30]: 32/64/AnyCPU - что за @$^%$?
От: · Великобритания  
Дата: 14.10.16 14:49
Оценка: :)
Здравствуйте, fddima, Вы писали:

F>·>Так в том-то и дело, что оно _может_ являться компонентом системы, если очень хочеися, но _не должно_. Чем от меньшего числа компонент системы зависит некий софт — тем лучше.

F> Нет, — дотнет неотъемлимый компонент целого ряда версий систем (и всех современных десктопных). Даже загрузчик модулей распознает дотнет модули. Правильно ли было делать так — вопрос иного толка, я совсем выше в этом топике кажется писал, но если кратко — мне лично, нравятся внешние интерпретаторы больше, но и плюсы от нативной интеграции есть.
Плохо, что есть _только_ нативная интеграция.

F>>>·>Когда рута нет, есть возможность вручную скачать/распаковать.

F>>> Ага, а поставить возможности толком нет.
F>·>Что значит "толком поставить"? Запускается и работает — этого не достаточно? Обязательно заколачивать в систему по самые гланды? Зачем?
F>А если не запускается? Исполнимый модуль, например, банально импортирует модуль по абсолютному пути (для записи смертным недоступный).
Бага же, очевидно. Пофиксить надо.

F>Нужно уже совершать доп действия (например подредактировать шелл скрипт дабы втюхнуть переменные). Да и вообще там не простое копирование встречается. Просить от дотнета того же — странно. .net core теоретически можно бандлить (не знаю как просто это сделать, баловался только с ембедом рантайма в нэйтив).

Теоретически, если повезёт. Притом не поддерживается официально — хакайте сами, если сможете. Т.е. с какой-то версии может и поломаться и придётся придумывать новую теорию.

F>·>Она не порочна если абсолютно всё ставится из-под админа и никак по-другому ничего сделать нельзя. А в таком виде это тупо палки в колёса.

F>Везде по сути можно ставить программы без админских прав,
Можно, но только если это не .net-программа.

F>с теми или иными ограничениями. Иначе это не комп а плеер/читалка/кому что по душе. Не все права даются юзеру, некоторый софт просто неспособен работать без соответствующих прав. В итоге неясно с чего такое безапелляционно е утверждение.

Я понимаю, когда эта программа требует что-то системного, ну там железо какое-то или открыть 80-й порт.
Но, скажем, обычный софт.. bug tracker например. Скачал, запустил, поигрался — не понравилось, выкинул, понравилось поставил нормально. Скажем, youtrack какой-нибудь — едет как бинарник, со встроенным web сервером и субд. Поиграться или вести баги для своей домашней странички — пожалуйста, установи на рабочий стол и пользуйся на здоровье. А потребуется для чего-то более серьёзного — поставишь по серьёзному с админ-правами на сервак, 80-й порт, большая субд и т.п.

F>>>·>Нифига они не рулят, просто выкручиваются как могут из-за отстутствия пакетного менеджера.

F>>> Пакетные менеджеры сдуваются на конфликтах system-wide библиотек. В итоге бандлить чаще проще, что несколько ограничивает его применимость. В линуксах оно работает от того, что репозиторий фактически один центральный. Всякие внешние (дополнительные) источники, безусловно удобны, но как только появляются конфликты — оно перестает быть удобным. В итоге путь анархии — практически показал что это просто работает. А вот попытки контроллировать деплоймент централизованно (всякие сторы) — уже сложнее, чем могло-бы быть. KISS же.
F>·>dll и прочий hell? Не, не слышал.
F>Нет, не слышал. Приватные зависимости носим с собой.
sxs hell? или уже придумали новый hell?

F>Разве ад возникал не из-за тупого деплоймента?

Ад возникает из-за того, что вещи которые сами по себе внезапно становятся системными, вот и начинаются проблемы деплоймента.

F>·>Так для изврлюбителей и java есть ставящаяся в систему, с автообновлялкой и с теми же присущими глюками и заморочками.

F> Так и отлично.
Правильно — отлично. Отлично то, что есть выбор. .net выбор не предоставляет.

F> Просто в фаре набираю java ... и этого на винде мне хватает. Зачем бандлить рантайм для программы весом в метр. Тем кому важен специфичный рантайм бандлят. Но это скорее от неизбежности, так просто проще. Но с дотнетом этого не нужно.

А разве не возникает проблем, что старый софт не работает на новой версии fw? И если нужной версии не оказалось...
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[25]: 32/64/AnyCPU - что за @$^%$?
От: alexzzzz  
Дата: 14.10.16 18:13
Оценка:
Здравствуйте, ·, Вы писали:

A>>Сами решают свои проблемы сами, не сваливая на пользователя.

·>Ты сам-то читал?
·>"Recommended Method: Run the Microsoft utility to repair corrupted registry keys". А уж если и это мелкомягкое поделие не сработает, можно и ручками один ключик реестра прибить.

Читал, даже воспользовался. Оно просто убирает Java из списка установленных программ, чтоб не отсвечивало. Ручками потом тоже нужно. Ручками завсегда можно, но хотелось бы, чтобы оно само.

·>Ява тут не причём. Это мелкомягкий MSI жжот напалмом


Ява всегда не при чём.

A>>·>Т.е. "/platform (C# Compiler Options)" это не опция компилятора, т.е. тулзы, которая компилирует?

A>>Кто тебя требует её указывать во время компиляции? Никто. Хочешь принять решение позже? Принимай. Хочешь изменить уже принятое решение? Изменяй.
·>Зачем тогда опция?

A>>К опции out есть аналогичные претензии?

·>Нет, ибо современные компьютеры данные хранят в файлах. Вывод компилятора — данные, данные без имени файла сохранять некуда.

1. /out можно не указывать.
2. «Имя файла не влияет на работоспособность программы».
3. Файл всегда можно переименовать.

Зачем тогда опция?

A>>А зачем? У тебя есть волшебная нативная dll, код которой можно загрузить и в x86-процесс, и в x64-процесс и он везде будет работать?

·>У меня есть две длл, под обе intel платформы, но нет под ARM/Itanium. Шо делать?

Раз программа сама разрешает свои зависимости => AnyCPU.
Re[26]: 32/64/AnyCPU - что за @$^%$?
От: · Великобритания  
Дата: 15.10.16 00:04
Оценка: -1
Здравствуйте, alexzzzz, Вы писали:

A>·>"Recommended Method: Run the Microsoft utility to repair corrupted registry keys". А уж если и это мелкомягкое поделие не сработает, можно и ручками один ключик реестра прибить.

A>Читал, даже воспользовался. Оно просто убирает Java из списка установленных программ, чтоб не отсвечивало. Ручками потом тоже нужно. Ручками завсегда можно, но хотелось бы, чтобы оно само.
Чтобы оно само что? Удаляешь да и всё.
Не хочешь мучиться с MSI, ставь яву из архива.

A>·>Ява тут не причём. Это мелкомягкий MSI жжот напалмом

A>Ява всегда не при чём.
"Ты виноват уж тем, что хочется мне кушать".
Как может быть ява виновата в проблемах MSI?? Ок, могу допустить что в Оракле напортачили при создании инсталлятора, но это и не мудрено с такой замечательной технологией как MSI.

A>>>К опции out есть аналогичные претензии?

A>·>Нет, ибо современные компьютеры данные хранят в файлах. Вывод компилятора — данные, данные без имени файла сохранять некуда.

A>1. /out можно не указывать.

A>2. «Имя файла не влияет на работоспособность программы».
A>3. Файл всегда можно переименовать.
A>Зачем тогда опция?
Эта опция относится непосредственно к процессу компиляции. Компилятор должен куда-то класть свой вывод, вариантов нет. Обсуждаемый флажок никакого отношения к компиляции не имеет, а влияет только на работоспособность на последнем этапе жизненного цикла проекта — запуск в системе пользователя.

A>>>А зачем? У тебя есть волшебная нативная dll, код которой можно загрузить и в x86-процесс, и в x64-процесс и он везде будет работать?

A>·>У меня есть две длл, под обе intel платформы, но нет под ARM/Itanium. Шо делать?
A>Раз программа сама разрешает свои зависимости => AnyCPU.
Что значит сама? Почему нельзя всегда самой? Зачем эти частные случаи? Чем поддержка одной платформы из четырёх принципиально отличается от поддержки двух платформ из четырёх?
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[27]: 32/64/AnyCPU - что за @$^%$?
От: alexzzzz  
Дата: 17.10.16 12:41
Оценка:
Здравствуйте, ·, Вы писали:

A>>1. /out можно не указывать.

A>>2. «Имя файла не влияет на работоспособность программы».
A>>3. Файл всегда можно переименовать.
A>>Зачем тогда опция?
·>Эта опция относится непосредственно к процессу компиляции. Компилятор должен куда-то класть свой вывод, вариантов нет. Обсуждаемый флажок никакого отношения к компиляции не имеет, а влияет только на работоспособность на последнем этапе жизненного цикла проекта — запуск в системе пользователя.

/out никакого отношения к процессу компиляции не имеет. Компилятору всё равно, как называется конечный файл. Опция опциональна, указывать не требуется, т.к. есть значение по умолчанию. /platform тоже не имеет отношения к процессу компиляции, компилятору всё равно, что там указано. Опция также не требуется, т.к. есть значение по умолчанию.

A>>>>А зачем? У тебя есть волшебная нативная dll, код которой можно загрузить и в x86-процесс, и в x64-процесс и он везде будет работать?

A>>·>У меня есть две длл, под обе intel платформы, но нет под ARM/Itanium. Шо делать?
A>>Раз программа сама разрешает свои зависимости => AnyCPU.
·>Что значит сама?

Выбирает и подгружает нужную версию нативной dll в рантайме. Или разработчик озаботился, как в Яве, лаунчером в виде exe/bat, и подопытной программе уже на момент старта подсовываются правильные версии зависимостей.

·>Почему нельзя всегда самой? Зачем эти частные случаи?


Для удобства. Чтоб не ручками, а само автоматически.

·>Чем поддержка одной платформы из четырёх принципиально отличается от поддержки двух платформ из четырёх?


Когда нативные библиотеки, от которых ты зависишь, существует более чем под одну платформу, тебе в любом случае нужен какой-то ручной механизм разрешения зависимостей. Когда зависимости существуют только под одну платформу, то писать ручной механизм нет смысла, т.к. не из чего выбирать.
Отредактировано 17.10.2016 12:42 alexzzzz . Предыдущая версия .
Re[28]: 32/64/AnyCPU - что за @$^%$?
От: · Великобритания  
Дата: 17.10.16 13:43
Оценка:
Здравствуйте, alexzzzz, Вы писали:

A>·>Эта опция относится непосредственно к процессу компиляции. Компилятор должен куда-то класть свой вывод, вариантов нет. Обсуждаемый флажок никакого отношения к компиляции не имеет, а влияет только на работоспособность на последнем этапе жизненного цикла проекта — запуск в системе пользователя.

A>/out никакого отношения к процессу компиляции не имеет. Компилятору всё равно, как называется конечный файл. Опция опциональна, указывать не требуется, т.к. есть значение по умолчанию. /platform тоже не имеет отношения к процессу компиляции, компилятору всё равно, что там указано. Опция также не требуется, т.к. есть значение по умолчанию.
Не правда. Компилятор должен иметь какое-то имя файла, иначе ему некуда будет писать результат своей работы.

A>·>Почему нельзя всегда самой? Зачем эти частные случаи?

A>Для удобства. Чтоб не ручками, а само автоматически.
Ок. Ладно, согласен на "для удобства", этим можно обосновать всё. Удобно же админские-права требовать для деплоймента fw, удобно же MSI использовать...
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re[29]: 32/64/AnyCPU - что за @$^%$?
От: alexzzzz  
Дата: 17.10.16 13:50
Оценка: +1
Здравствуйте, ·, Вы писали:

A>>/out никакого отношения к процессу компиляции не имеет. Компилятору всё равно, как называется конечный файл. Опция опциональна, указывать не требуется, т.к. есть значение по умолчанию. /platform тоже не имеет отношения к процессу компиляции, компилятору всё равно, что там указано. Опция также не требуется, т.к. есть значение по умолчанию.

·>Не правда. Компилятор должен иметь какое-то имя файла, иначе ему некуда будет писать результат своей работы.

Чё неправда-то? Минимальный набор:

csc.exe test.cs


И всё. Больше ему ничего не надо.
Re[5]: 32/64/AnyCPU - что за @$^%$?
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 25.10.16 18:19
Оценка: +1
Здравствуйте, Kolesiki, Вы писали:

K>Итак, повторяю вопрос: причём тут биты в байткоде?

Ни при чём. Данная опция студии всего лишь ставит один флаг в заголовке файла. Его можно поменять без перекомпиляции с помощью утилиты corflags (ну или даже вручную с помощью hex-редактора). Нужна эта опция в основном для интеграции с легаси-кодом в виде COM-объектов (т.к. они бинарные, то для 32 и 64 бит нужны разные библиотеки, старые компоненты, соответственно, есть только в 32 битных билдах). У нас на работе полно такого хлама.
[КУ] оккупировала армия.
Re[21]: 32/64/AnyCPU - что за @$^%$?
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 25.10.16 18:30
Оценка:
Здравствуйте, ·, Вы писали:

·>Это понятно. Непонятно почему этот флажок требуется на этапе компиляции проекта, а не его дистрибуции.


Для удобства разработки — обычно в разработке используется та же самая библиотека, что и в продакшене, потому отладочные билды точно так же нужно принудительно запускать в 32-битном режиме. Но вообще этот флажок можно поменять в любой момент без перекомпиляции с помощью утилитки corflags.
[КУ] оккупировала армия.
Re[28]: 32/64/AnyCPU - что за @$^%$?
От: Ops Россия  
Дата: 26.10.16 06:29
Оценка: 1 (1) +1
Здравствуйте, Sinix, Вы писали:

S>без обид, но с разморозкой)))

S>https://chocolatey.org/install

Там свои тараканы.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[29]: 32/64/AnyCPU - что за @$^%$?
От: Sinix  
Дата: 26.10.16 06:34
Оценка:
Здравствуйте, Ops, Вы писали:

S>>https://chocolatey.org/install

Ops>Там свои тараканы.
?
гуй есть, обновление всего софта есть, селф-хостинг присутствует — что ещё для щастья надо-то?
Re[30]: 32/64/AnyCPU - что за @$^%$?
От: Ops Россия  
Дата: 26.10.16 06:39
Оценка: +1
Здравствуйте, Sinix, Вы писали:

S>?

S>гуй есть, обновление всего софта есть, селф-хостинг присутствует — что ещё для щастья надо-то?
Ну вот пару дней назад vbox сломался, сам одной версии, extensions другой, виртуалка не пускается. Вообще, поддержка многих пакетов в лучших традициях опенсорса.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.