2017年08月17日
川俣晶の縁側ソフトウェア技術雑記total 325 count

ClickOnceインストーラーをgithubでホストする【Visual Studio 2017 Update3編】

Written By: 川俣 晶連絡先

前提環境 §

Visual Studio 2017 Update3

問題 §

 Visual Studio 2017をUpdate3にバージョンアップしたらClickOnceインストーラーをgithubでホストする【Visual Studio 2017 Update2編】で述べた方法で対処できない。

問題の発生箇所 §

 gitconfigにautocrlf = falseを書き加えるとVisal Studio側がエラーになって動作しない。なぜ動作しないのかは不明。

原因 §

 不明。(Update3のリリースノートにも仕様変更のことは何も書いていない)

解決 §

 ClickOnceインストーラーをgithubでホストする【Visual Studio 2017 Update2編】と基本的に同じだが、転送設定の変更の手順だけが異なる。

 プロジェクトのルートフォルダの.gitattributesファイルに以下の行を追加する。単純に末尾に書き足せば良い。

*.exe   binary

*.htm   binary

*.inf   binary

*.application   binary

*.manifest   binary

*.deploy   binary

※ プロジェクトごとに対処が必要である。また対象拡張子は全てバイナリー扱いされるので、自動マージはできなくなる。

 その後、ローカルgit、github上のClickOnce関連の間違った改行処理されたファイルを全て削除の上、再度配置コマンドでファイルを作成してそれを同期する。

感想 §

「自動変換と名が付くものはたいていトラブルメーカー……という経験則がまた成立してしまった」

「改行コードはLFに統一すべきなのじゃないの?」

「それは改行コードがLFという世界に住んでいる人たちが、自分だけ楽をしたいという言い分だ」

「現実にはどうなの? 変換しちゃいけないの?」

「改行コードを書き換えるとハッシュ値が変わって改竄扱いされる場合もあるし、そもそも改行ではないコードを誤認して書き換えたらそれこそファイルが壊れて大惨事になる。ああいう変換は、本来なら絶対安全が保証される世界の中でのみ可能になること。一般論としてやると、たいてい問題が起きる」

「99%上手く行く方法論は100人に1人が困るわけだね」

「その計算は間違っているぞ」

「なんで?」

「一人が扱う改行コード入りファイルは一つではないからだ。そして、一つ一つのファイルに、上手く行かない確率が存在するぞ」

「自動変換と名が付くものはたいていトラブルメーカー……という経験則があるはずだ」

「そうだね」

「ところで、これはMS製品の問題? OSSの問題?」

「どちらが原因かは分からないが、【自動変換と名が付くものはたいていトラブルメーカーという経験則】に関して言えば、どこの製品だろうとOSSだろうと関係なく存在する経験則だ」

「自動変換に過度に依存して自爆するのは人間の典型的な姿ってことだね」

Facebook

キーワード【 川俣晶の縁側ソフトウェア技術雑記
【技術雑記】の次のコンテンツ
2017年
09月
05日
procmail+postfixの電子メールサーバでqq.comからのメールを拒否するまでの記録
3days 16 count
total 183 count
【技術雑記】の前のコンテンツ
2017年
08月
16日
Visual Studio 2017 Update 3でC# 7.1の新機能を使用する方法
3days 20 count
total 435 count

このサイト内の関連コンテンツ リスト

2017年
08月
06日
ClickOnceインストーラーをgithubでホストする【Visual Studio 2017 Update2編】
3days 15 count
total 360 count
2017年08月17日
川俣晶の縁側ソフトウェア技術雑記total 325 count

ClickOnceインストーラーをgithubでホストする【Visual Studio 2017 Update3編】

Written By: 川俣 晶連絡先

前提環境 §

Visual Studio 2017 Update3

問題 §

 Visual Studio 2017をUpdate3にバージョンアップしたらClickOnceインストーラーをgithubでホストする【Visual Studio 2017 Update2編】で述べた方法で対処できない。

問題の発生箇所 §

 gitconfigにautocrlf = falseを書き加えるとVisal Studio側がエラーになって動作しない。なぜ動作しないのかは不明。

原因 §

 不明。(Update3のリリースノートにも仕様変更のことは何も書いていない)

解決 §

 ClickOnceインストーラーをgithubでホストする【Visual Studio 2017 Update2編】と基本的に同じだが、転送設定の変更の手順だけが異なる。

 プロジェクトのルートフォルダの.gitattributesファイルに以下の行を追加する。単純に末尾に書き足せば良い。

*.exe   binary

*.htm   binary

*.inf   binary

*.application   binary

*.manifest   binary

*.deploy   binary

※ プロジェクトごとに対処が必要である。また対象拡張子は全てバイナリー扱いされるので、自動マージはできなくなる。

 その後、ローカルgit、github上のClickOnce関連の間違った改行処理されたファイルを全て削除の上、再度配置コマンドでファイルを作成してそれを同期する。

感想 §

「自動変換と名が付くものはたいていトラブルメーカー……という経験則がまた成立してしまった」

「改行コードはLFに統一すべきなのじゃないの?」

「それは改行コードがLFという世界に住んでいる人たちが、自分だけ楽をしたいという言い分だ」

「現実にはどうなの? 変換しちゃいけないの?」

「改行コードを書き換えるとハッシュ値が変わって改竄扱いされる場合もあるし、そもそも改行ではないコードを誤認して書き換えたらそれこそファイルが壊れて大惨事になる。ああいう変換は、本来なら絶対安全が保証される世界の中でのみ可能になること。一般論としてやると、たいてい問題が起きる」

「99%上手く行く方法論は100人に1人が困るわけだね」

「その計算は間違っているぞ」

「なんで?」

「一人が扱う改行コード入りファイルは一つではないからだ。そして、一つ一つのファイルに、上手く行かない確率が存在するぞ」

「自動変換と名が付くものはたいていトラブルメーカー……という経験則があるはずだ」

「そうだね」

「ところで、これはMS製品の問題? OSSの問題?」

「どちらが原因かは分からないが、【自動変換と名が付くものはたいていトラブルメーカーという経験則】に関して言えば、どこの製品だろうとOSSだろうと関係なく存在する経験則だ」

「自動変換に過度に依存して自爆するのは人間の典型的な姿ってことだね」

Facebook

キーワード【 川俣晶の縁側ソフトウェア技術雑記
【技術雑記】の次のコンテンツ
2017年
09月
05日
procmail+postfixの電子メールサーバでqq.comからのメールを拒否するまでの記録
3days 16 count
total 183 count
【技術雑記】の前のコンテンツ
2017年
08月
16日
Visual Studio 2017 Update 3でC# 7.1の新機能を使用する方法
3days 20 count
total 435 count
【技術雑記】のコンテンツ全リスト【技術雑記】の表紙

このサイト内の関連コンテンツ リスト

2017年
08月
06日
ClickOnceインストーラーをgithubでホストする【Visual Studio 2017 Update2編】
3days 15 count
total 360 count

このコンテンツを書いた川俣 晶へメッセージを送る

[メッセージ送信フォームを利用する]

メッセージ送信フォームを利用することで、川俣 晶に対してメッセージを送ることができます。

この機能は、100%確実に川俣 晶へメッセージを伝達するものではなく、また、確実に川俣 晶よりの返事を得られるものではないことにご注意ください。

このコンテンツへトラックバックするためのURL

http://mag.autumn.org/tb.aspx/20170817164949
サイトの表紙【技術雑記】の表紙【技術雑記】のコンテンツ全リスト 【技術雑記】の入手全リスト 【技術雑記】のRSS1.0形式の情報このサイトの全キーワードリスト 印刷用ページ

管理者: 川俣 晶連絡先

Powered by MagSite2 Version 0.25 (Alpha-Test) Copyright (c) 2004-2017 Pie Dey.Co.,Ltd.