Visual Studio 2017 Part6

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ bfcf-9TS0)
垢版 |
2018/06/11(月) 00:37:48.15ID:kj7utwZs0
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑冒頭にコレを三行重ねてスレ立てしておくこと

Visual Studio 2017
http://www.visualstudio.com/

日本語チーム ブログ
http://blogs.msdn.com/b/visualstudio_jpn

前スレ
Visual Studio 2017 Part5
http://mevius.5ch.net/test/read.cgi/tech/1520336504/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
2019/02/09(土) 02:53:07.15ID:naCzWpg60
レジストリにはメリットデメリットあって、OSや共有ライブラリではあった方がいいけど
一ソフトウェアレベルではユーザー側にメリットって大してないよ。
大体、レジストリがあるのWINだけでしょ。

ソフトウェアレベルといってもソフトの規模や性質次第だから一概に言えないけど、
環境バックアップ・移行とかの際、たくさんあるソフトを一々インストーラーや
設定のバックアップからの復元をするより、ソフトと設定まるごとコピーできりゃ
樂だしね。
定期バックアップもレジストリ絡まれると面倒。

上で「たくさんあるソフト」って書いてるところがミソで、ソフト単体で見たときは
レジストリを使おうがどうだろうがどうでもいいんだけど、バックアップや復元作業
の観点からたくさんのソフトを扱い出すとレジストリは面倒だよ。
2019/02/09(土) 03:08:59.33ID:zy9w8qc80
>>515
それレジストリが悪い理由になってないよね
2019/02/09(土) 03:13:57.32ID:fu+e3nHT0
Linuxなどと違ってWindowsの一般ユーザーはそれ程賢くない
かつてiniファイル(中身はただのテキストファイル)が使われていた時ユーザーが勝手な思い込みで中身を改変したり
ファイルの場所を移動したりしてトラブルになることが多かった
そのため堅牢性が求められたためにOSが用意した仕組みがレジストリ
実際多くのアプリ作者はトラブル回避のためレジストリを利用する様になった
2019/02/09(土) 03:17:15.93ID:QdArAxCf0
>>516-517
単純自動化できないしアプリ毎に管理が必要
いや別に現状で仕方ないからやってるけどな

>>518
これよこれ

>>519
×悪い
○面倒
ゴミが残るとか肥大化とか細かいレベルで色々嫌い
2019/02/09(土) 03:25:46.14ID:2C9eni+PM
>>521
開発者視点皆無の完全なユーザー思考だな
本当にVS使ってるのか?
2019/02/09(土) 03:25:53.87ID:naCzWpg60
>>520
自己責任の名の下にレジストリを改変という話はよくあるから、
勝手な改変の抑制やトラブル回避が理由ではないと思うけど。

かつてのDLL地獄とINIファイルの仕様制限の脱却が始まりであって、
設定生データの隠蔽はたまたま結果的にそうなってるだけかと。
2019/02/09(土) 03:33:46.81ID:fu+e3nHT0
レジストリ改変は素人相手には十分抑止力になっていたよ
敢えて手を出すのなら完全に自己責任なのでそれなりの知識を待ったユーザーしか手を出さない
もっとも今ではネットで情報が拡散するので随分敷居は低くなってるけど
2019/02/09(土) 03:47:44.96ID:naCzWpg60
レジストリは下手に触ると他に影響があるという点においては
抑止力がありますが、INIファイルを触ることによるトラブルと
それを回避するという目的ではないと思いますけどねえ。

論旨が変わってきてて本来言いたいことは518で書いたので
抑止力に関しては比較的認識違いだなあという感想しかないですが、
2019/02/09(土) 04:03:07.71ID:fu+e3nHT0
まあ時代の流れだね
レジストリ登場時の1990年代であれば十分だった
今ではWin10を核としたUWPでは殆ど設定を改変する手段がない
実質アプリ作者が用意した手段以外では設定を弄ることは不可能になってる
2019/02/09(土) 06:32:10.70ID:nK5uhIo+0
今思うと、レジストリというひとかたまりにする必要性はあんまりなかったな
保存場所はバラバラでいいからiniファイルを取り扱うAPIを使いやすくしておけば必要充分だった
2019/02/09(土) 07:17:31.96ID:rkd3w/wq0
今はexeの中に埋め込んじゃおうって流れになってるね
2019/02/09(土) 07:39:24.21ID:JZ0ZEbPTM
Linuxみたいに設定いじるのに散らばったiniファイルやらconfファイルやらをまず探し出して
更に数100から数1000行もあるテキストの中から目的の箇所をピンポイントで見つけるのも大概だけどな
2019/02/09(土) 08:35:19.98ID:nK5uhIo+0
appdataでもlocal settingsでもいいからデフォの場所にしといて
あと変更したきゃユーザー指定もできるようになってりゃいい
2019/02/09(土) 08:38:16.22ID:fu+e3nHT0
最近のアプリの設定ファイルの格納場所としては
%USERPROFILE%\AppData\Local\Packages\
以下にある程度まとまってはいる
ただし一般ユーザが内容を修正することはほぼ不可能

ちなみに設定ファイル以外だと
インストールモジュールがC:\Program Files\WindowsApps\
レポジトリがC:\ProgramData\Microsoft\Windows\AppRepository\

相互に情報共有しているので勝手に改変するのは極めて危険
2019/02/09(土) 08:43:29.46ID:WZeXfO6c0
設定は手編集が便利とか言ってる人は頭が25年前で止まってる。
2019/02/09(土) 09:09:31.70ID:1gFa1rsT0
GetPrivateProfileString()等って当時もあったよ
2019/02/09(土) 09:55:23.81ID:ptOHVclS0
スレタイ読めないのお前ら?
>>528
アホか。そんな非効率なことせんわ
2019/02/09(土) 10:17:18.84ID:gCoYyOZeM
相手すると面倒そうなので皆スルーしてるのに敢えて触りに行くとは…
2019/02/09(土) 10:28:56.08ID:nK5uhIo+0
exeに書き込みって怖すぎだろ
2019/02/09(土) 10:41:35.38ID:1gFa1rsT0
.configの設定のことをexeに埋め込みって呼んでるだけじゃないの
2019/02/09(土) 10:45:08.25ID:spo556FUd
>>534
ちょっとはググれよ
2019/02/09(土) 10:48:04.18ID:Y95KZy8v0
.configを触られてエンコードも変わって読めないトラブルに会ったわ。
2019/02/09(土) 10:48:05.65ID:spo556FUd
>>536
何言ってんの?
https://github.com/swaroop-sridhar/designs/blob/bc408efbf05abf51a5c3f0343221c112b5c3fa67/accepted/single-file/design.md
2019/02/09(土) 10:57:24.95ID:Y95KZy8v0
話ぶったぎるけど、c++のMFCでやっていたんだけどある時からウイルスバスターコーポレートでmailなんたらで誤検知される。
コード遡ってビルドすると大丈夫なんだが、それ以降のコードはダイアログ追加ていどで、たいした実装してないのだが?
2019/02/09(土) 11:00:31.40ID:k4TwxJVN0
>>541
それはアンチウィルスソフトの問題だからここで聞いてもしょうがない
別のアンチウィルスでヒューリスティック分析でひっかかってコードの順変えたら回避したこともあるけど原因はメーカーにしかわからん
2019/02/09(土) 12:18:34.33ID:1WNYjgWpM
>>540
それ全然違う話だぞ
2019/02/09(土) 12:23:28.71ID:yiDYsHnZ0
>>528
設定変える度にexeが改竄されるの?
exeの署名が意味なくなるよ
2019/02/09(土) 12:37:20.40ID:PBixaoLLd
>>543
どう違うの?configもexeに含めるんでしょ?
2019/02/09(土) 12:37:52.49ID:PBixaoLLd
>>544
読んだかい?
2019/02/09(土) 12:56:21.13ID:yiDYsHnZ0
>>546
>>540でパッケージに含むとされてるjsonは固定値のファイルであって、今議論されてる動的な設定変更を記憶するためのものとは違いますやん
2019/02/09(土) 14:38:46.25ID:HFZvnClBM
vsの話しろや
2019/02/09(土) 14:45:57.73ID:1WNYjgWpM
>>545
そのconfigって開発者が設定するものでユーザーが設定するもんじゃないぞ
2019/02/09(土) 14:53:54.82ID:5GIyjfJSM
やはりこうなったか
>>534が薮を突いた時点で予測は出来たけどな
この状況どうするよ
2019/02/09(土) 18:20:14.74ID:nK5uhIo+0
>>540
意味わかんない
おまえの言葉で説明して
2019/02/09(土) 18:25:28.28ID:4FM77PPb0
>>540はただのアホ
アプリケーションパッケージがなんだか理解してないだろ
EXEを書き換える話しはまったく別だし、署名を考えたらいまどきそんなことできんわ
2019/02/09(土) 18:32:45.95ID:SWGYUO8nM
理解できないならもう蒸し返すなよ
このネタは面倒くさいことになるから当初誰も触れなかったんだよ
>>534に触発されて>>536が燃料投下したからおかしなことになったんだろ
2019/02/09(土) 18:49:06.96ID:nK5uhIo+0
>>553
説明できないんなら蒸し返すなよ
おまえにとって面倒くさいのはわかったから触れなくていい
2019/02/09(土) 18:50:26.57ID:nK5uhIo+0
突っ込まれるのが怖くて自分の言葉で何も言えない意気地なしは
いてもいなくても同じだ
2019/02/09(土) 18:57:44.19ID:SWGYUO8nM
小学生相手に微積分の講義しても面倒くさいだけで時間の無駄だからな
こんなところで.NETの中身からいちいち説明するのも面倒くさい
2019/02/09(土) 19:02:31.74ID:nK5uhIo+0
微積分わからんだけだろ
2019/02/09(土) 19:19:52.19ID:NnmcfWng0
>>556
恥の上塗り乙w
2019/02/09(土) 19:39:20.63ID:fu+e3nHT0
普通に>>551が無知なだけだと思う
.NETのexeファイルはただの実行形式ファイルだけでなくdllなどの別ファイルを含む場合がある
ILMergeなどでファイル統合するのが有名
さらにxmlやjsonなどの設定ファイルをも統合することを意味して設定を埋め込むと表現したレスがそもそもの発端
厳密な意味での設定ファイルではなく単なるパラメータリストをソースコード本体から分離しただけのもの
ただし解釈によってどうとでも判断できるので人によって判断が分かれて論争になりがちなのがこの話題の特徴
2019/02/09(土) 19:50:26.18ID:nK5uhIo+0
>>559
exeにコード以外のものを埋め込むのは古くからやってるだろ
そういう問題じゃなく稼働中にProgram Filesの中のファイルを書き換えるのはどうなのかと問うている
2019/02/09(土) 19:58:43.20ID:fu+e3nHT0
>>560
いや、過去レス追いかけてきたがその話題ははじめて見たぞ
どこでそんな議論が行われてた?
2019/02/09(土) 20:02:38.75ID:fu+e3nHT0
というか8bitCPUじゃあるまいし実行中のファイルそのものを書き換えるって無茶だろ
例外発生して落ちるだろ
2019/02/09(土) 20:02:59.10ID:zy9w8qc80
>>559
exeにいろんなファイルをリソースとして内包するとか16bit Windowsの時代からやっとるわ
新しくも何ともないよ
2019/02/09(土) 20:03:02.88ID:1gFa1rsT0
>>560
そんなん気にしてるのあんただけ
2019/02/09(土) 20:03:34.30ID:nK5uhIo+0
exeの書き換えをどう見るかという話を発見できないならいいよ
追わないでやるからそのまま逃げろ
2019/02/09(土) 20:11:16.32ID:NnmcfWng0
>>561
レジストリの話をしていたらいきなり>>528を言い出したことは理解できてるか?
2019/02/09(土) 20:11:59.06ID:PH7q5mDOM
exeの書き換えって実行中のことを言ってたのか?
今時の仮想メモリ環境で自己書き換えプログラムって実現できるのか?
2019/02/09(土) 20:20:59.71ID:fu+e3nHT0
>>567
普通は無理だろうな
コードの整合性が保てないのでデータファイルはともかくexeそのものを書き換えることは出来ない
2019/02/09(土) 20:21:39.62ID:nahnFu2ya
自分自信は編集できないんじゃね
ウイルスじゃあるまいし
2019/02/09(土) 20:24:12.83ID:zy9w8qc80
つまり>>528は真っ赤な嘘ってことだね
2019/02/09(土) 20:28:09.23ID:fu+e3nHT0
いや実行時ではなくてコンパイル時(あるいはリンク時)に埋め込むという話だろ
2019/02/09(土) 20:28:40.60ID:WeH6KhAsd
実行中にEXEを書き換えることはほとんど不可能だが、実行終了の際にバッチなどで書き換えることは可能。
2019/02/09(土) 20:29:59.83ID:WeH6KhAsd
実行中のイメージは、プロセスメモリーを経由すれば書き換え可能。
2019/02/09(土) 20:36:42.22ID:WeH6KhAsd
ただし、保護されたフォルダでは管理者権限が必要となる。
2019/02/09(土) 21:06:16.44ID:naCzWpg60
流し読みで適当に解釈すると>>559がFAで、さらに適当に解釈すると
exeには旧来exeとは別にjarみたいに複数ファイルを内包した(旧来リソースとは異なる)
exeが存在すると
おやすみ
2019/02/09(土) 21:13:54.67ID:NnmcfWng0
>>571
>>531みたいな話ししてた奴が今更何言ってるんだよ w
2019/02/09(土) 21:27:11.00ID:fu+e3nHT0
>>531はUWPの話だよ
>>571は従来からの.NETの話
>>575の言うように.NETのexeは純粋なバイナリコードではない
.NETのexeファイルはCLR上で実行される中間コードとその他のファイルのパッケージングのファイル形式であって
Win32などのexeとは根本的に異なる
実際にはexeファイルを初回起動した時点でインストールが行われパッケージ内のマニフェストに従って指定のフォルダに各ファイルが再配置される
dllや設定ファイルもこの時に本来の位置にインストールされる
exeに設定が埋め込まれているというのはこういう意味
2019/02/09(土) 21:31:07.84ID:YAWSonmT0
.NETでもPEフォーマットのままだと思ったが?
2019/02/09(土) 21:34:43.48ID:lBhuIc/7d
exe内に設定持たすのはマルチユーザーで使えなくなるから無理だわな
2019/02/09(土) 21:38:18.56ID:NnmcfWng0
>>577
まじでもうやめなよ…
痛々しすぎる
2019/02/09(土) 21:40:00.01ID:fu+e3nHT0
だからexe内の設定は設定ファイル(正確には設定の指示)であって実際の保存場所は個別ファイルの場合もあるし
レジストリの場合もある
アプリの作者次第
2019/02/09(土) 21:42:31.59ID:lBhuIc/7d
ということで>>528は嘘でした
2019/02/09(土) 21:45:21.02ID:g1V4hgtXM
だから.NETの仕組みをバカ相手に説明するのは面倒くさいんだよ
2019/02/09(土) 21:50:44.32ID:fu+e3nHT0
そうだね
まともな議論になりそうもないのでもう消えるわ
2019/02/09(土) 22:02:35.89ID:NnmcfWng0
はい逃げたー w
結局ユーザーの設定値を.exeに入れるとかは嘘だったってことね
>>528の少し上ではレジストリの改変の話をしてるからね
2019/02/09(土) 22:06:24.88ID:TCWbgd76d
レジストリの話してたんだからHKEY_CURRENT_USERに該当する分もexe内に持たすのかと思うよね
2019/02/09(土) 22:10:07.52ID:WeH6KhAsd
レジストリAPIをフックしてポータブルなアプリを作るという技法もある。
2019/02/09(土) 23:59:21.05ID:RprY51GNM
結局最後までバカを晒したのは二人だけか
2019/02/10(日) 00:09:00.36ID:vOpxNkmL0
誰のことを言ってるのか知らんけど
>>567 > exeの書き換えって実行中のことを言ってたのか?
とか言ってた奴が言うセリフじゃないわなw
2019/02/10(日) 02:51:04.35ID:hVspAvhd0
実行中に自分自身を書き換えるプログラムコードが普通だと思い込んでる方が異常
今どきのプラグラミング言語でそんなことが出来るものはない
昔のZ80アセンブラでは割と有名なテクニックだったけどね
今ではCPUの特権命令でも使って余程特殊なコーディングを行わなければ不可能
2019/02/10(日) 03:40:38.19ID:2bRkKwxI0
>>590
それはおまえが知らんだけだろ
VirtualAllocとかVirtualProtectを使ったことがないんだろ?
Win32なら普通(?)に動的コード生成はできるよ
WinRT(UWP)は知らんけど、たぶん無理と予想
2019/02/10(日) 03:59:24.37ID:hVspAvhd0
それは動的割当てを行うようにプログラムを組んでいるだけの規定の動作
予めプログラムされた通りのコードに過ぎない
実行時書き換えというのは言葉通りコードそのものを書き換える行為のこと
ストレージ上の実行ファイルのバイトイメージとは別のメモリ上に展開されたイメージそのものを改変する行為のこと
メモリ上のイメージをストレージの本体と破綻なく同期させる必要がある
特殊なデバイスドライバーやコピーガードのためのランダマイズなどで利用される
2019/02/10(日) 04:42:51.47ID:2bRkKwxI0
>>592
だから使ったことないんだろ?
実行時に書き換えるのは可能なんだよ
プロテクトの一種として実装したことがある
知識だけで経験値のない馬鹿は黙った方がいいぞ
2019/02/10(日) 05:52:13.57ID:z8DjjGzX0
その方法、実行中か終了時にexeファイルを更新できるの?
2019/02/10(日) 05:52:29.32ID:RPNdCFPT0
昔のってリロケータブルにするためにジャンプ命令かまそもそも実行時書き換え前提でなかったけ
2019/02/10(日) 07:05:54.25ID:XdgVAt+K0
exeにリソースを埋め込むなんてことはwindows3.1の時代からやっていたことなのに
.netのexeは普通のexeと違ってなんたらを埋め込むんだそれが最近の流れだ(どやぁ)
アホの相手はやっとれんわ
2019/02/10(日) 07:07:54.34ID:gx/Ytsg/0
exeファイルをROにすればわかるだろ。
2019/02/10(日) 07:11:54.32ID:hVspAvhd0
>>593
まだコードの意味を理解してないのか
少なくとも現在のCPUはコードとデータを明確に区別してコードを保護しているんだよ
普通はコードを改変することは出来ない
実際はもう少し複雑だけど単縦にx86のコードセグメントとデータセグメントって知ってるか?
プログラムコードはコードセグメントに配置される
そこで386以降のCPUのメモリ管理機構は内容の監視を行なってる
そこでコードを下手に書き換えると例外が発生する
x86のプロテクトモードの由来はメモリ上のコードとデータを区別して保護することから来てる
2019/02/10(日) 07:54:36.22ID:vOpxNkmL0
>>590
言語?
知ったかは黙ってろ
あと、x86のコード/データセグメントはプロテクトモードのない時代から存在するし保護するのはコードだけじゃない
2019/02/10(日) 07:59:41.55ID:T1760EbE0
>>596
それを推し進めてexe単体で配布できるようにするのはごく最近の流れだけど何言ってんの?
2019/02/10(日) 08:05:14.10ID:XdgVAt+K0
exeの書き換えじゃねえだろ
話そらすなクズ
2019/02/10(日) 08:09:52.10ID:hVspAvhd0
この場合書き換えではなくて埋め込み
exeはいわゆるパッケージやコンテナとしての役割
2019/02/10(日) 08:24:12.46ID:hVspAvhd0
>>599
そうだよ
プロテクトモード以前のセグメントは単にメモリ管理の都合上設けられただけの仕組みで保護機能は有していない
(プログラム次第で何でもできる、8bit CPUと同じレベル)
逆にプロテクトモード登場以降は基本を踏襲しつつも遥かに巨大で複雑なシステムになってる
従来プログラマが管理していた内容をCPUが自動で行うようになった
特権レベル、特権命令を理解してないとコードの書き換えは不可能になった
2019/02/10(日) 08:28:06.64ID:a99832Pm0
無毛な争いはさらに続く
2019/02/10(日) 09:25:48.53ID:/LBq2AuUM
>>600
そんなもん昔からやってるわ
って話な
恥の上塗りしすぎ
2019/02/10(日) 09:27:48.47ID:/LBq2AuUM
>>603
そんな誰でも知ってるような話はチラ裏に書いとけ
2019/02/10(日) 09:55:29.24ID:5pBCXy9T0
アプリケーションのEXEファイルやDLLファイルを1つにまとめるには?
http://www.atmarkit.co.jp/fdotnet/dotnettips/426ilmerge/ilmerge.html
2019/02/10(日) 10:28:59.80ID:lfHOhRQuM
流石に今さらILMergeは古すぎる
今だと自己コンテナ形式でパッケージングする
方法はケースバイケースだけど一例の紹介が>>540
2019/02/10(日) 11:05:47.27ID:1d93AcIq0
>>578でとっくに指摘されているのに「あたらしいexeのカタチ」とかスレ違いで意味不明な言い争いは他でやって
2019/02/10(日) 11:25:35.31ID:5pBCXy9T0
そりゃフォーマット自体は共通なのは当たり前だろ
exeもdllもobjもsysもだったかな?全部構造は同じ
要はOSのシェルや実行エンジンがPEヘッダーの情報をどう解釈するかというだけの話
2019/02/10(日) 12:38:41.45ID:09p/WGTE0
-uR/r
IDとワッチョイと論点変えて荒らし続けるキチガイ
583 名前:デフォルトの名無しさん (ラクペッ MM99-uR/r)[sage] 投稿日:2019/02/09(土) 21:45:21.02 ID:g1V4hgtXM
だから.NETの仕組みをバカ相手に説明するのは面倒くさいんだよ

勝手にやってろ、NG推奨
2019/02/10(日) 12:50:53.30ID:9lfcYoyLd
そもそも動的設定記録ファイルを含めない時点でこの話題に関して的外れなんだよ
2019/02/10(日) 14:41:35.31ID:B31yNMWe0
>>590
>今どきのプラグラミング言語でそんなことが出来るものはない

「言語」という括りなら、メモリアクセスできる「言語」ならできるだろ
2019/02/10(日) 16:02:19.37ID:AtMty/wzM
あえて言えばその場合の選択はアセンブリ言語だ
というかお前らだいぶ俺へのヘイト溜めているようだが間抜けすぎるぞ
プログラミングするならフレームワークの仕組みやCPUの構造をもっと理解しろよ
2019/02/10(日) 16:32:13.18ID:O9TDLItQ0
よく知りませんがexeの動的書き換え可能派の主張に
説得力を感じないのはワイだけでしょうか。
パッケージとリソースを明確に分けて話されてるように思えない。
リソース埋め込みの話とは違うはずなのに>>596みたいなドヤァを
見ると訳が分からないです。

勝手に話を整理して、exeの動的書き換えが可能かどうかはさておき、
動的書き換えの必要性や合理的なメリットなどの説明が欲しいですね。
>>579で指摘されてるように、設定値をexeに持たせる意味を感じませんが。
2019/02/10(日) 16:36:36.82ID:O9TDLItQ0
遅レスになりますが、
>>527
これには同意です。
思い返すとどうも問題点の主張がレジストリの仕組みそのものへの批判と取られてたかもです。
問題にしてたのは、「OSもアプリも諸々ひとかたまりにしたレジストリ」に尽きます。
2019/02/10(日) 16:51:15.61ID:ixgHA2PX0
>>615
exeへの「静的なリソース埋込み」と「動的な書換え」を同一視しているだけだと思う
そもそも「exeファイル」の実行時書換えならともかく「exe」そのものをCPU実行中に書換えるのは無理だと思う
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況