プロジェクト名に漢字とカナを混ぜるとsetup.exeを実行するとエラーになる への返答
投稿で使用できる特殊コードの説明。(別タブで開きます。)
以下の返答は逆順(新しい順)に並んでいます。
投稿者 魔界の仮面弁士  (社会人)
投稿日時
2012/3/5 12:40:08
> Shift_JIS とUTF-8、UTF-16 はバイト数が違うんですね。勉強になりました。
良く知られるのは Shift_JIS ですよね。
これは 半角=1バイト、全角=2バイトという考え方で、ほぼ間違いありません。
(シフトJIS の派生形には、半角2バイト文字を含むものもありますが、Windows では使われません)
一方、UTF-16 (あるいは UCS-2) は、「1 文字 = 2 バイト」固定となります。
これは Windows が内部的に利用している文字コードであり、.NET Framework の文字列も
内部的には、これで管理されています。コンピュータ的には比較的カウントしやすいですしね。
そして UTF-8 は、大雑把にいえば ASCII = 1バイト、CJK 漢字(日中韓の文字) = 3 バイト、
ギリシャやロシア語などを 2 バイトで表現する文字コードです。HTML やメールなど、
インターネットの世界で良く使われるようになってきた文字コードですね。
なお UTF-16 においては、これらから外れるパターンとして、「サロゲートペア」という
特殊なパターンがあります。
たとえば、魚の「𩹉(とびうお)」や「𩸽(ほっけ)」などがサロゲートペアに該当する文字で、
UTF-8 = 4 バイト、UTF-16 = 4 バイトで表現されます。(Shift_JIS には無い文字です)
# Windows での対応は Vista 以降なので、Windows 2000 や XP では正しく表示できないかも。
> 少数点3桁表示で以下四捨五入にしますが、
少数 → 小数ですね。
> 今回の問題は解決でいいでしょうか?
再度確認。
http://rucio.cloudapp.net/ThreadDetail.aspx?ThreadId=10739#CommentId22985
> Power Packsは今回の件では関係がないようです。
>
> プロジェクト名の日本語入力では全角文字で12.5文字
> もし全角文字が2バイトで数えると25バイトが、ボーダーラインでしょうか?
上記の発言で納得しかけたのですが、よくよく考えてみると、
名前が短い方が失敗しているパターンもあったのですよね?
http://rucio.cloudapp.net/ThreadDetail.aspx?ThreadId=10739#CommentId22979
>「直角三角形の各辺の長さを求める」を頒布したことがありましたが、
> このときは問題なく「setup.exe」アイコンでインストールを完了できました。
http://rucio.cloudapp.net/ThreadDetail.aspx?ThreadId=10739#CommentId22982
>「テーパーノックピン寸法出力」にして頒布したことがありますが、このときも
>「LineShape」を使用したため必須項目にPower Packsを追加して頒布しましたが、
> この時も 「setup.exe」アイコンを利用してセットアップしようとしたところ、
> やはり同じ症状で下記のエラーが出ました。
これらは、「かな漢字で13文字以上だと失敗する」という仮定に反します。
名前の長さに影響していることは確かですが、何か他にも追加の条件がありそうです。
もしかして、『テーパーノックピン寸法出力』という半角カナ混在の名前だったりしますか?
>> それぞれのプロジェクト名を比較すると、下記のようになりますね。
失礼しました。
先の投稿で 【数え間違い】 をしていたので、あらためて再掲します。
マニフェストファイルは通常 UTF-8 で書かれることが多いので、
恐らくはUTF-8 換算の長さに上限があるのかと思っていたのですが、
それだと「直角三角形の各辺の長さを求める」の方が成功している点を
説明できないですね。
> 題名を変えたほうがいいでしょうか?
まだ結論も出ていませんし、今のままで良いのでは無いでしょうか。
良く知られるのは Shift_JIS ですよね。
これは 半角=1バイト、全角=2バイトという考え方で、ほぼ間違いありません。
(シフトJIS の派生形には、半角2バイト文字を含むものもありますが、Windows では使われません)
一方、UTF-16 (あるいは UCS-2) は、「1 文字 = 2 バイト」固定となります。
これは Windows が内部的に利用している文字コードであり、.NET Framework の文字列も
内部的には、これで管理されています。コンピュータ的には比較的カウントしやすいですしね。
そして UTF-8 は、大雑把にいえば ASCII = 1バイト、CJK 漢字(日中韓の文字) = 3 バイト、
ギリシャやロシア語などを 2 バイトで表現する文字コードです。HTML やメールなど、
インターネットの世界で良く使われるようになってきた文字コードですね。
なお UTF-16 においては、これらから外れるパターンとして、「サロゲートペア」という
特殊なパターンがあります。
たとえば、魚の「𩹉(とびうお)」や「𩸽(ほっけ)」などがサロゲートペアに該当する文字で、
UTF-8 = 4 バイト、UTF-16 = 4 バイトで表現されます。(Shift_JIS には無い文字です)
# Windows での対応は Vista 以降なので、Windows 2000 や XP では正しく表示できないかも。
> 少数点3桁表示で以下四捨五入にしますが、
少数 → 小数ですね。
> 今回の問題は解決でいいでしょうか?
再度確認。
http://rucio.cloudapp.net/ThreadDetail.aspx?ThreadId=10739#CommentId22985
> Power Packsは今回の件では関係がないようです。
>
> プロジェクト名の日本語入力では全角文字で12.5文字
> もし全角文字が2バイトで数えると25バイトが、ボーダーラインでしょうか?
上記の発言で納得しかけたのですが、よくよく考えてみると、
名前が短い方が失敗しているパターンもあったのですよね?
http://rucio.cloudapp.net/ThreadDetail.aspx?ThreadId=10739#CommentId22979
>「直角三角形の各辺の長さを求める」を頒布したことがありましたが、
> このときは問題なく「setup.exe」アイコンでインストールを完了できました。
http://rucio.cloudapp.net/ThreadDetail.aspx?ThreadId=10739#CommentId22982
>「テーパーノックピン寸法出力」にして頒布したことがありますが、このときも
>「LineShape」を使用したため必須項目にPower Packsを追加して頒布しましたが、
> この時も 「setup.exe」アイコンを利用してセットアップしようとしたところ、
> やはり同じ症状で下記のエラーが出ました。
これらは、「かな漢字で13文字以上だと失敗する」という仮定に反します。
名前の長さに影響していることは確かですが、何か他にも追加の条件がありそうです。
もしかして、『テーパーノックピン寸法出力』という半角カナ混在の名前だったりしますか?
>> それぞれのプロジェクト名を比較すると、下記のようになりますね。
失礼しました。
先の投稿で 【数え間違い】 をしていたので、あらためて再掲します。
『直角三角形の各辺の長さを求める』 15文字、UTF-8 = 45 バイト、UTF-16 = 30 バイト、Shift_JIS = 30 バイト
『テーパーノックピン寸法出力』 13文字、UTF-8 = 39 バイト、UTF-16 = 26 バイト、Shift_JIS = 26 バイト
『テーパーノックピン寸法出力』 15文字、UTF-8 = 45 バイト、UTF-16 = 30 バイト、Shift_JIS = 19 バイト
『テーパーノックピン寸法出力』 13文字、UTF-8 = 39 バイト、UTF-16 = 26 バイト、Shift_JIS = 26 バイト
『テーパーノックピン寸法出力』 15文字、UTF-8 = 45 バイト、UTF-16 = 30 バイト、Shift_JIS = 19 バイト
マニフェストファイルは通常 UTF-8 で書かれることが多いので、
恐らくはUTF-8 換算の長さに上限があるのかと思っていたのですが、
それだと「直角三角形の各辺の長さを求める」の方が成功している点を
説明できないですね。
> 題名を変えたほうがいいでしょうか?
まだ結論も出ていませんし、今のままで良いのでは無いでしょうか。
投稿者 zz6989  (社会人)
投稿日時
2012/3/5 06:36:29
何回もすいません、題名を変えたほうがいいでしょうか?
例えば「プロジェクト名を日本語にする場合の文字数制限」
例えば「プロジェクト名を日本語にする場合の文字数制限」
投稿者 zz6989  (社会人)
投稿日時
2012/3/5 06:32:17
魔界の仮面弁士 さんへ,、何度も有難うございます。
> もし全角文字が2バイトで数えると25バイトが、ボーダーラインでしょうか?
Shift_JIS とUTF-8、UTF-16 はバイト数が違うんですね。勉強になりました。
>ありゃ。MSDN ライブラリどころか、MSDN フォーラムですらなかったですね。(^^;
すいません、初心者らしいいでしょ。
>>付けて質問の内容を青くするのは難しいことでしょうか
http://rucio.cloudapp.net/ThreadDetail.aspx?ThreadId=9641にありました。
「2. > から始まる行の色を変更。」
簡単にできるんですね。有難うございます。
>>>者でもできそうならマネをしたいのですが
(3) 先頭が > なら、その行を青く着色する→これです。ただ単にその行の文字を青くしたかっただけです。
ちなみに、私が作成したプログラムは、機械加工に使うものが多いので三角関数の出番が非常に多いのと、少数点3桁表示で以下四捨五入にしますが、これは魔界の仮面弁士さんがどこかで回答されたものから習いました。
いつも初心者に分かりやすいお返事有難うございます。
今回の問題は解決でいいでしょうか?
一応チェック入れておきます。
> もし全角文字が2バイトで数えると25バイトが、ボーダーラインでしょうか?
Shift_JIS とUTF-8、UTF-16 はバイト数が違うんですね。勉強になりました。
>ありゃ。MSDN ライブラリどころか、MSDN フォーラムですらなかったですね。(^^;
すいません、初心者らしいいでしょ。
>>付けて質問の内容を青くするのは難しいことでしょうか
http://rucio.cloudapp.net/ThreadDetail.aspx?ThreadId=9641にありました。
「2. > から始まる行の色を変更。」
簡単にできるんですね。有難うございます。
>>>者でもできそうならマネをしたいのですが
(3) 先頭が > なら、その行を青く着色する→これです。ただ単にその行の文字を青くしたかっただけです。
ちなみに、私が作成したプログラムは、機械加工に使うものが多いので三角関数の出番が非常に多いのと、少数点3桁表示で以下四捨五入にしますが、これは魔界の仮面弁士さんがどこかで回答されたものから習いました。
いつも初心者に分かりやすいお返事有難うございます。
今回の問題は解決でいいでしょうか?
一応チェック入れておきます。
投稿者 魔界の仮面弁士  (社会人)
投稿日時
2012/3/4 20:14:44
> 実験結果の一部を記載させて頂きます。
おぉ、凄い! まだ確定では無いとはいえ、プロジェクト名の長さに依存する可能性はとても高そうです。
> もし全角文字が2バイトで数えると25バイトが、ボーダーラインでしょうか?
> 過去にPower Packs を利用したプログラムでプロジェクト名が「直角三角形の各辺の長さを求める」を頒布したことがありましたが、このときは問題なく「setup.exe」アイコンでインストールを完了できました。
> 必須項目にPower Packsを追加して頒布しましたが、この時も 「setup.exe」アイコンを利用してセットアップしようとしたところ、やはり同じ症状で下記のエラーが出ました。
それぞれのプロジェクト名を比較すると、下記のようになりますね。
> ローカルにコピーしたアプリケーションを直接実行した場合、正常に稼動します。
ということは、おそらく
>> この例外は、アプリケーション マニフェスト(.manifestファイル)や
>> 配置マニフェスト(.applicationファイル)の内容に問題があった
ということになりそうです。(アプリの問題というよりは、ClickOnce 配置に関わる問題?)
理由はまだ分かりませんが、マニフェストファイル内のいずれかの項目について、
長さ制限があって、それに引っかかってしまうのかも知れません。
> 「- 配置とアプリケーションは一致するセキュリティ ゾーンを持っていません。」と書いてあります。
「配置とアプリケーションは一致するセキュリティ ゾーンを持っていません」は未経験なので、
残念ながら私から提供できる情報はありませんが、少し法則性が見えてきましたね。
>>> MSDN ライブラリを見たところ、
>> 上記の引用元はどこでしょうか?
> http://vsug.jp/tabid/63/forumid/57/threadid/10503/scope/posts/Default.aspx
ありゃ。MSDN ライブラリどころか、MSDN フォーラムですらなかったですね。(^^;
> このサイトはマイクロソフトではないですね。
ですね。VSUG(ブイサグ)のサイトは、Microsoft が運営しているわけではありません。
Microsoft がスポンサーの一企業にはなっていますけれども。
> 最初からプロジェクト名は半角英数字を使うようにしています。
ファイル名は英数字の方がよいですが、製品名は漢字を使っても問題は無いと思います。
ただ、長さ制限というのは思いつきませんでした。ありがとうございます。
> 下記のように>を付けて質問の内容を青くするのは難しいことでしょうか、
>> 1.プロジェクト名に……漢字とカナを使用してます
>> 2.……「Visual Basic Power Packs 」を追加しました。
文頭に「>」を付与すると青くなる機能は、この掲示板では 2010年5月に実装されました。
http://rucio.cloudapp.net/ThreadDetail.aspx?ThreadId=9641
> 初心者でもできそうならマネをしたいのですが
VB でワープロ(エディタ)機能か、掲示板機能を作ろうとしておられるのでしょうか。
質問の意図が読み取れなかったのですが、同等機能を自作するとすれば、手順としては、
(1) 文字列を行単位で調べていく。
(2) それぞれの行の先頭が「>」で始まるかを調べる。
(3) 先頭が > なら、その行を青く着色する。
になると思います。(それぞれの部分については、いろいろな書き方が考えられます)
おぉ、凄い! まだ確定では無いとはいえ、プロジェクト名の長さに依存する可能性はとても高そうです。
> もし全角文字が2バイトで数えると25バイトが、ボーダーラインでしょうか?
「A」 や「1」 は、UTF-8 = 1 バイト、UTF-16 = 2 バイト、Shift_JIS = 1 バイトです。
「ア」 や「。」 は、UTF-8 = 3 バイト、UTF-16 = 2 バイト、Shift_JIS = 1 バイト、です。
「あ」や「R」は、UTF-8 = 3 バイト、UTF-16 = 2 バイト、Shift_JIS = 2 バイトです。
「α」や「я」は、UTF-8 = 2 バイト、UTF-16 = 2 バイト、Shift_JIS = 2 バイトです。
「ア」 や「。」 は、UTF-8 = 3 バイト、UTF-16 = 2 バイト、Shift_JIS = 1 バイト、です。
「あ」や「R」は、UTF-8 = 3 バイト、UTF-16 = 2 バイト、Shift_JIS = 2 バイトです。
「α」や「я」は、UTF-8 = 2 バイト、UTF-16 = 2 バイト、Shift_JIS = 2 バイトです。
> 過去にPower Packs を利用したプログラムでプロジェクト名が「直角三角形の各辺の長さを求める」を頒布したことがありましたが、このときは問題なく「setup.exe」アイコンでインストールを完了できました。
> 必須項目にPower Packsを追加して頒布しましたが、この時も 「setup.exe」アイコンを利用してセットアップしようとしたところ、やはり同じ症状で下記のエラーが出ました。
それぞれのプロジェクト名を比較すると、下記のようになりますね。
『直角三角形の各辺の長さを求める』 15文字、UTF-8 = 78 バイト、UTF-16 = 52 バイト、Shift_JIS = 52 バイト
『テーパーノックピン寸法出力』 13文字、UTF-8 = 90 バイト、UTF-16 = 60 バイト、Shift_JIS = 60 バイト
『テーパーノックピン寸法出力』 13文字、UTF-8 = 90 バイト、UTF-16 = 60 バイト、Shift_JIS = 60 バイト
> ローカルにコピーしたアプリケーションを直接実行した場合、正常に稼動します。
ということは、おそらく
>> この例外は、アプリケーション マニフェスト(.manifestファイル)や
>> 配置マニフェスト(.applicationファイル)の内容に問題があった
ということになりそうです。(アプリの問題というよりは、ClickOnce 配置に関わる問題?)
理由はまだ分かりませんが、マニフェストファイル内のいずれかの項目について、
長さ制限があって、それに引っかかってしまうのかも知れません。
> 「- 配置とアプリケーションは一致するセキュリティ ゾーンを持っていません。」と書いてあります。
「配置とアプリケーションは一致するセキュリティ ゾーンを持っていません」は未経験なので、
残念ながら私から提供できる情報はありませんが、少し法則性が見えてきましたね。
>>> MSDN ライブラリを見たところ、
>> 上記の引用元はどこでしょうか?
> http://vsug.jp/tabid/63/forumid/57/threadid/10503/scope/posts/Default.aspx
ありゃ。MSDN ライブラリどころか、MSDN フォーラムですらなかったですね。(^^;
> このサイトはマイクロソフトではないですね。
ですね。VSUG(ブイサグ)のサイトは、Microsoft が運営しているわけではありません。
Microsoft がスポンサーの一企業にはなっていますけれども。
> 最初からプロジェクト名は半角英数字を使うようにしています。
ファイル名は英数字の方がよいですが、製品名は漢字を使っても問題は無いと思います。
ただ、長さ制限というのは思いつきませんでした。ありがとうございます。
> 下記のように>を付けて質問の内容を青くするのは難しいことでしょうか、
>> 1.プロジェクト名に……漢字とカナを使用してます
>> 2.……「Visual Basic Power Packs 」を追加しました。
文頭に「>」を付与すると青くなる機能は、この掲示板では 2010年5月に実装されました。
http://rucio.cloudapp.net/ThreadDetail.aspx?ThreadId=9641
> 初心者でもできそうならマネをしたいのですが
VB でワープロ(エディタ)機能か、掲示板機能を作ろうとしておられるのでしょうか。
質問の意図が読み取れなかったのですが、同等機能を自作するとすれば、手順としては、
(1) 文字列を行単位で調べていく。
(2) それぞれの行の先頭が「>」で始まるかを調べる。
(3) 先頭が > なら、その行を青く着色する。
になると思います。(それぞれの部分については、いろいろな書き方が考えられます)
投稿者 zz6989  (社会人)
投稿日時
2012/3/4 17:54:52
魔界の仮面弁士 さんへ
ご多忙中たびたび申し訳ありません。
今日1日実験をしてみました。
実験結果の一部を記載させて頂きます。
(1)~(4)の順番になっていませんが、なんとなく概要が掴めたような感じがします。
以下はPower Packsを使用した場合の結果です。
プロジェクト名
1 両ねじスタッドの先端Rを求める 不可
2 両ねじすたっどの先端Rを求める 不可
3 両ねじスタッドの先端アールを求める 不可
4 両ねじすたっどの先端あーるを求める 不可
5 両ねじ 合格
6 両ねじスタッド 合格
7 両ねじスタッドの 合格
8 両ねじスタッドの先 合格
9 両ねじスタッドの先端 合格
10 両ねじスタッドの先端R 合格
11 両ねじスタッドの先端Rを 合格 12文字
両ねじスタッドの先端Rをも 不可 13文字
12 両ねじスタッドの先端Rをもと 不可
13 両ねじスタッドの先端Rをもとめ 不可
14 両ねじスタッドの先端Rをもとめる 不可
15 両ねじスタッドの先端Rを求 不可
すいません、11番と12番の間に番号を付けるのを忘れてしまいました。
以上Power Packs を使用した場合。
以下はPower Packsを使用しない場合。
プロジェクト名
16 両ねじスタッドの先端Rをも 不可
17 りょうねじねじスタッドのせんたんRをも 不可
18 りょうねじねじすたっどのせんたんRをも 不可
19 両ねじスタッドの先端Rを 合格 12文字
20 りょうねじねじすたっどのせんたんあーるをも 不可
21 りょうねじねじすたっどのせんたんあーるを 不可
22 りょうねじねじすたっどのせんたんあーる 不可
23 りょうねじねじすたっどのせんたんあ 不可
24 りょうねじねじすたっどのせん 不可 13文字
25 りょうねじねじすたっどのせ 不可
26 りょうねじねじすたっどの 合格 12文字
27 両ねじスタッドの先端rをも 合格 12.5文字
番外 あいうえおかきくけこさしす 不可 13文字
番外 あいうえおかきくけこさし 合格 12文字
以上はPower Packsを使用しない場合です。
Power Packsは今回の件では関係がないようです。
Power Packsを使用を使用していて、しかも漢字を使用していても 11番は合格です。
Power Packsを使用しない場合では、しかも漢字を使用していても、19番も27番も合格です。
今度は24番を見ますと、漢字不使用なのに不合格です。
26番と27番は合格です。
どうやら文字数、または文字に割り当てられるバイト数に問題があるみたいです。
プロジェクト名の日本語入力では全角文字で12.5文字
もし全角文字が2バイトで数えると25バイトが、ボーダーラインでしょうか?
あくまでも、初心者の考えなのでよくわかりません。
ご多忙中たびたび申し訳ありません。
今日1日実験をしてみました。
実験結果の一部を記載させて頂きます。
(1)~(4)の順番になっていませんが、なんとなく概要が掴めたような感じがします。
以下はPower Packsを使用した場合の結果です。
プロジェクト名
1 両ねじスタッドの先端Rを求める 不可
2 両ねじすたっどの先端Rを求める 不可
3 両ねじスタッドの先端アールを求める 不可
4 両ねじすたっどの先端あーるを求める 不可
5 両ねじ 合格
6 両ねじスタッド 合格
7 両ねじスタッドの 合格
8 両ねじスタッドの先 合格
9 両ねじスタッドの先端 合格
10 両ねじスタッドの先端R 合格
11 両ねじスタッドの先端Rを 合格 12文字
両ねじスタッドの先端Rをも 不可 13文字
12 両ねじスタッドの先端Rをもと 不可
13 両ねじスタッドの先端Rをもとめ 不可
14 両ねじスタッドの先端Rをもとめる 不可
15 両ねじスタッドの先端Rを求 不可
すいません、11番と12番の間に番号を付けるのを忘れてしまいました。
以上Power Packs を使用した場合。
以下はPower Packsを使用しない場合。
プロジェクト名
16 両ねじスタッドの先端Rをも 不可
17 りょうねじねじスタッドのせんたんRをも 不可
18 りょうねじねじすたっどのせんたんRをも 不可
19 両ねじスタッドの先端Rを 合格 12文字
20 りょうねじねじすたっどのせんたんあーるをも 不可
21 りょうねじねじすたっどのせんたんあーるを 不可
22 りょうねじねじすたっどのせんたんあーる 不可
23 りょうねじねじすたっどのせんたんあ 不可
24 りょうねじねじすたっどのせん 不可 13文字
25 りょうねじねじすたっどのせ 不可
26 りょうねじねじすたっどの 合格 12文字
27 両ねじスタッドの先端rをも 合格 12.5文字
番外 あいうえおかきくけこさしす 不可 13文字
番外 あいうえおかきくけこさし 合格 12文字
以上はPower Packsを使用しない場合です。
Power Packsは今回の件では関係がないようです。
Power Packsを使用を使用していて、しかも漢字を使用していても 11番は合格です。
Power Packsを使用しない場合では、しかも漢字を使用していても、19番も27番も合格です。
今度は24番を見ますと、漢字不使用なのに不合格です。
26番と27番は合格です。
どうやら文字数、または文字に割り当てられるバイト数に問題があるみたいです。
プロジェクト名の日本語入力では全角文字で12.5文字
もし全角文字が2バイトで数えると25バイトが、ボーダーラインでしょうか?
あくまでも、初心者の考えなのでよくわかりません。
投稿者 zz6989  (社会人)
投稿日時
2012/3/4 06:54:09
たびたび失礼します。
補足情報です。
まだ、実験はしていませんが、過去にプロジェクト名を「テーパーノックピン寸法出力」にして頒布したことがありますが、このときも「LineShape」を使用したため必須項目にPower Packsを追加して頒布しましたが、この時も 「setup.exe」アイコンを利用してセットアップしようとしたところ、やはり同じ症状で下記のエラーが出ました。
System.Deployment.Application.InvalidDeploymentException (Zone)
- 配置とアプリケーションは一致するセキュリティ ゾーンを持っていません。
以下長い外国後がず~っと並んでますので省略でいいでしょうか。
補足情報です。
まだ、実験はしていませんが、過去にプロジェクト名を「テーパーノックピン寸法出力」にして頒布したことがありますが、このときも「LineShape」を使用したため必須項目にPower Packsを追加して頒布しましたが、この時も 「setup.exe」アイコンを利用してセットアップしようとしたところ、やはり同じ症状で下記のエラーが出ました。
System.Deployment.Application.InvalidDeploymentException (Zone)
- 配置とアプリケーションは一致するセキュリティ ゾーンを持っていません。
以下長い外国後がず~っと並んでますので省略でいいでしょうか。
投稿者 ZZ6989  (社会人)
投稿日時
2012/3/3 21:31:07
早速のお返事有難うございます。
とても読みやすい文章で感心してしまいました。
それはともかく早急に(1)~(4)の実験をしてみます。
早急といっても、私の場合休日しかパソコンに触れる機会がないので少々時間がかかりそうです。
過去にPower Packs を利用したプログラムでプロジェクト名が「直角三角形の各辺の長さを求める」を頒布したことがありましたが、このときは問題なく「setup.exe」アイコンでインストールを完了できました。
今回の問題のプロジェクト「両ネジスタッドの先端Rを求める」は.NET Framwork とPower Packsがインストールされているパソコンでは、セットアップせず、ローカルにコピーしたアプリケーションを直接実行した場合、正常に稼動します。
すいません、使用バージョンの記入を忘れました。
Visual Basic 2010 Expressを使用しています。
インストーラーはClickOnce発行です。
ありました。
System.Deployment.Application.InvalidDeploymentException (Zone)の下に
「- 配置とアプリケーションは一致するセキュリティ ゾーンを持っていません。」と書いてあります。
私も下記のURLは確認しました。但し頒布先のパソコンはIE9になっていますのでこの場合当てはまるかどうかはわかりません。それとダウンロードはクロームを使用しました。
http://ucgokei.blog42.fc2.com/blog-entry-531.html
> 「プロジェクト名の配下にあるフォルダーとかファイル名に漢字をカナが混ざっている場合にエラーになる」とか書いてありました。
の引用は下記のURLからです。日本語が妙なのは、私のせいです、いろいろ調べているうちになんとなくイメージで記入してしまいました、今後気を付けます。
http://vsug.jp/tabid/63/forumid/57/threadid/10503/scope/posts/Default.aspx
このサイトはマイクロソフトではないですね。
http://support.microsoft.com/kb/418924
http://support.microsoft.com/kb/921451
この記事は参考になりました。
http://support.microsoft.com/kb/332093/ja
https://connect.microsoft.com/VisualStudio/feedback/details/711235/system-io-ziparchive-zipped-only-utf-8-encoding
この記事も参考になりました。
最近では私も、サーバーにアップロードする時にいちいち名前を半角に直すのは、間違えの元になりますので、最初からプロジェクト名は半角英数字を使うようにしています。
今回、魔界の仮面弁士さんからのお返事で1年分くらいの勉強になったような気がします。初心者でも非常にわかりやすいです。
それともう一つ教えて頂きたいのですが、下記のように>を付けて質問の内容を青くするのは難しいことでしょうか、初心者でもできそうならマネをしたいのですが
> 1.プロジェクト名に……漢字とカナを使用してます
> 2.……「Visual Basic Power Packs 」を追加しました。
とても読みやすい文章で感心してしまいました。
それはともかく早急に(1)~(4)の実験をしてみます。
早急といっても、私の場合休日しかパソコンに触れる機会がないので少々時間がかかりそうです。
過去にPower Packs を利用したプログラムでプロジェクト名が「直角三角形の各辺の長さを求める」を頒布したことがありましたが、このときは問題なく「setup.exe」アイコンでインストールを完了できました。
今回の問題のプロジェクト「両ネジスタッドの先端Rを求める」は.NET Framwork とPower Packsがインストールされているパソコンでは、セットアップせず、ローカルにコピーしたアプリケーションを直接実行した場合、正常に稼動します。
すいません、使用バージョンの記入を忘れました。
Visual Basic 2010 Expressを使用しています。
インストーラーはClickOnce発行です。
ありました。
System.Deployment.Application.InvalidDeploymentException (Zone)の下に
「- 配置とアプリケーションは一致するセキュリティ ゾーンを持っていません。」と書いてあります。
私も下記のURLは確認しました。但し頒布先のパソコンはIE9になっていますのでこの場合当てはまるかどうかはわかりません。それとダウンロードはクロームを使用しました。
http://ucgokei.blog42.fc2.com/blog-entry-531.html
> 「プロジェクト名の配下にあるフォルダーとかファイル名に漢字をカナが混ざっている場合にエラーになる」とか書いてありました。
の引用は下記のURLからです。日本語が妙なのは、私のせいです、いろいろ調べているうちになんとなくイメージで記入してしまいました、今後気を付けます。
http://vsug.jp/tabid/63/forumid/57/threadid/10503/scope/posts/Default.aspx
このサイトはマイクロソフトではないですね。
http://support.microsoft.com/kb/418924
http://support.microsoft.com/kb/921451
この記事は参考になりました。
http://support.microsoft.com/kb/332093/ja
https://connect.microsoft.com/VisualStudio/feedback/details/711235/system-io-ziparchive-zipped-only-utf-8-encoding
この記事も参考になりました。
最近では私も、サーバーにアップロードする時にいちいち名前を半角に直すのは、間違えの元になりますので、最初からプロジェクト名は半角英数字を使うようにしています。
今回、魔界の仮面弁士さんからのお返事で1年分くらいの勉強になったような気がします。初心者でも非常にわかりやすいです。
それともう一つ教えて頂きたいのですが、下記のように>を付けて質問の内容を青くするのは難しいことでしょうか、初心者でもできそうならマネをしたいのですが
> 1.プロジェクト名に……漢字とカナを使用してます
> 2.……「Visual Basic Power Packs 」を追加しました。
投稿者 魔界の仮面弁士  (社会人)
投稿日時
2012/3/3 16:19:14
> 1.プロジェクト名に……漢字とカナを使用してます
> 2.……「Visual Basic Power Packs 」を追加しました。
関係あるような気がしますが(特に1)、この件については、
私自身はあまり情報を持っていません。
問題個所を切り分けるため、試しに上記 2 点について、
簡単な実験プログラムを作って検証することはできますか?
具体的には、
(1)漢字を含める。 Power Packs を利用する。
(2)漢字を含めない。Power Packs を利用する。
(3)漢字を含める。 Power Packs は利用しない。
(4)漢字を含めない。Power Packs は利用しない。
という、4 種類の小さな実験プログラムを作成し、それぞれを頒布するという事です。
> 頒布して他のパソコンで「setup.exe」アイコンをクリックして実行しましたが、
セットアップせず、ローカルにコピーしたアプリケーションを直接実行した場合、正常に稼働しますか?
コピー配置で動作するのであれば、インストーラーの作成に失敗している可能性があります。
(もちろん、実行には .NET Framwork などのランタイムがインストールされている必要があります)
また、そのインストーラーはどのように作成されましたか?
・Visual Studio のセットアップ(デプロイメント/配置)プロジェクトで作成されたインストーラー
・ClickOnce あるいはノータッチデプロイメントによる発行
・InstallShield Limited Edtion for Visual Studio 2010 あるいは 製品版の InstallShield
・その他のインストーラー
> 「System.Deployment.Application.InvalidDeploymentException (Zone)」エラーの内容が長いので以下は省略
InvalidDeploymentException が出るという事は…ClickOnce 配置でしょうか。
この例外は、アプリケーション マニフェスト(.manifestファイル)や
配置マニフェスト(.applicationファイル)の内容に問題があったことを示しています。
Zone という文字列から察するに、もしかして、メッセージの後(あるいはインストールログ)に
『Deployment and application do not have matching security zones.』
『配置とアプリケーションは一致するセキュリティ ゾーンを持っていません』
のいずれかのメッセージが含まれていないでしょうか。
ざっと検索したところでは、下記のようなケースもあるようですが。
http://ucgokei.blog42.fc2.com/blog-entry-531.html
> 「プロジェクト名の配下にあるフォルダーとかファイル名に漢字をカナが混ざっている場合にエラーになる」とか書いてありました
上記の引用元はどこでしょうか?
原文の引用にしては日本語が妙ですが…機械翻訳でしょうか。
> 質問1. 「プロジェクト名に漢字とカナを混ぜてはいけない」 これは本当なのでしょうか?
VB6 においては、プロジェクト名やファイル名や変数名などに、マルチバイト文字を使わないよう
公式にアナウンスされていました。しかし .NET になってからは、この制限は解除されています。
http://support.microsoft.com/kb/418924
http://support.microsoft.com/kb/921451
そもそも .NET そのものの仕組みから言えば、アセンブリ名やクラス名に対して
漢字などを含めても構わないとされています。
それどころか、長さゼロの文字列や非可読文字さえ利用可能です。
(もちろん、そのような名前を Visual Studio 上から扱えるかどうかは別問題ですが)
そういう意味において、漢字が使用できないというのは本当とは言い難いのですが、
.NET そのものの仕組みとしては問題が無くとも、作成したファイルを配布する場合などに
問題が生じるケースもあるので、あながち間違った情報というわけでも無さそうです。
> プロのプログラマーの間では、そのような習慣があるのでしょうか?
マルチバイト文字を使わなければならないという積極的な理由が無い限りは、
個人的には「英数字だけ」の方がいらぬ問題を回避しやすいと思っています
たとえば、アプリケーションを Web 上に配置する場合、ファイル名などに
漢字等を含む URL だと、正しく処理されない可能性があります。
URL 中の漢字部分は、パーセントエンコーディングで処理されるべきなのですが、
それが Shift_JIS で処理されるのか UTF-8 なのかは曖昧だからです。
Internet Explorer (5 以上?)では、インターネットのオプション設定にて
「常に UTF-8 として URL を送信する」もしくは
「UTF-8 の URL を送信する」の設定がありますが、そもそも URL 中にて
パーセントエンコーディングされた文字列が、UTF-8 でデコードされるのか
それ以外でデコードされるのかは、サーバーによっても異なります。
半角英数字のみを使っていれば、こうした問題を避けることができます。
そのほか、アプリから利用する他社の DLL 等の不具合で、漢字を含めていると
正常に動作しないが、英数字のみにしていれば問題が無かったという事もありました。
ファイル名について言えば、HTTP の他、FTP でも似たような問題があります。
FTP サーバーおよび FTP クライアントの両方が、Unicode 対応のバージョンならば
問題は無いのですが、Unicode が使えない環境の場合、使用される文字コードが
処理系によって異なるため、マルチバイト文字を含んだファイルを
正しく処理できないことがあります。
http://support.microsoft.com/kb/332093/ja
また、ZIP ファイルも上記 FTP と似たような問題を含んでいます。
ZIP はそもそも多言語対応の規格では無かったため、ファイル名を CP437 という
英語圏の文字コードで扱う仕様になっています。最近では UTF-8 で格納できるように
拡張されているため、ZIP 規格上は日本語のファイル名も扱えるようになりましたが、
未だに UTF-8 に非対応なソフトも数多くあります(XP の ZIP フォルダ機能など)。
そのため、ファイル交換のためにも英数字の方が無難といえます。
# CP437 では、マルチバイト圏の国々にとっては都合の悪いため、実際には
# 本来は ZIP 規格に無い文字コード(日本では CP932 など)を格納した
# 非標準の ZIP ファイルも少なくありません。
https://connect.microsoft.com/VisualStudio/feedback/details/711235/system-io-ziparchive-zipped-only-utf-8-encoding
> 2.……「Visual Basic Power Packs 」を追加しました。
関係あるような気がしますが(特に1)、この件については、
私自身はあまり情報を持っていません。
問題個所を切り分けるため、試しに上記 2 点について、
簡単な実験プログラムを作って検証することはできますか?
具体的には、
(1)漢字を含める。 Power Packs を利用する。
(2)漢字を含めない。Power Packs を利用する。
(3)漢字を含める。 Power Packs は利用しない。
(4)漢字を含めない。Power Packs は利用しない。
という、4 種類の小さな実験プログラムを作成し、それぞれを頒布するという事です。
> 頒布して他のパソコンで「setup.exe」アイコンをクリックして実行しましたが、
セットアップせず、ローカルにコピーしたアプリケーションを直接実行した場合、正常に稼働しますか?
コピー配置で動作するのであれば、インストーラーの作成に失敗している可能性があります。
(もちろん、実行には .NET Framwork などのランタイムがインストールされている必要があります)
また、そのインストーラーはどのように作成されましたか?
・Visual Studio のセットアップ(デプロイメント/配置)プロジェクトで作成されたインストーラー
・ClickOnce あるいはノータッチデプロイメントによる発行
・InstallShield Limited Edtion for Visual Studio 2010 あるいは 製品版の InstallShield
・その他のインストーラー
> 「System.Deployment.Application.InvalidDeploymentException (Zone)」エラーの内容が長いので以下は省略
InvalidDeploymentException が出るという事は…ClickOnce 配置でしょうか。
この例外は、アプリケーション マニフェスト(.manifestファイル)や
配置マニフェスト(.applicationファイル)の内容に問題があったことを示しています。
Zone という文字列から察するに、もしかして、メッセージの後(あるいはインストールログ)に
『Deployment and application do not have matching security zones.』
『配置とアプリケーションは一致するセキュリティ ゾーンを持っていません』
のいずれかのメッセージが含まれていないでしょうか。
ざっと検索したところでは、下記のようなケースもあるようですが。
http://ucgokei.blog42.fc2.com/blog-entry-531.html
> 「プロジェクト名の配下にあるフォルダーとかファイル名に漢字をカナが混ざっている場合にエラーになる」とか書いてありました
上記の引用元はどこでしょうか?
原文の引用にしては日本語が妙ですが…機械翻訳でしょうか。
> 質問1. 「プロジェクト名に漢字とカナを混ぜてはいけない」 これは本当なのでしょうか?
VB6 においては、プロジェクト名やファイル名や変数名などに、マルチバイト文字を使わないよう
公式にアナウンスされていました。しかし .NET になってからは、この制限は解除されています。
http://support.microsoft.com/kb/418924
http://support.microsoft.com/kb/921451
そもそも .NET そのものの仕組みから言えば、アセンブリ名やクラス名に対して
漢字などを含めても構わないとされています。
それどころか、長さゼロの文字列や非可読文字さえ利用可能です。
(もちろん、そのような名前を Visual Studio 上から扱えるかどうかは別問題ですが)
そういう意味において、漢字が使用できないというのは本当とは言い難いのですが、
.NET そのものの仕組みとしては問題が無くとも、作成したファイルを配布する場合などに
問題が生じるケースもあるので、あながち間違った情報というわけでも無さそうです。
> プロのプログラマーの間では、そのような習慣があるのでしょうか?
マルチバイト文字を使わなければならないという積極的な理由が無い限りは、
個人的には「英数字だけ」の方がいらぬ問題を回避しやすいと思っています
たとえば、アプリケーションを Web 上に配置する場合、ファイル名などに
漢字等を含む URL だと、正しく処理されない可能性があります。
URL 中の漢字部分は、パーセントエンコーディングで処理されるべきなのですが、
それが Shift_JIS で処理されるのか UTF-8 なのかは曖昧だからです。
Internet Explorer (5 以上?)では、インターネットのオプション設定にて
「常に UTF-8 として URL を送信する」もしくは
「UTF-8 の URL を送信する」の設定がありますが、そもそも URL 中にて
パーセントエンコーディングされた文字列が、UTF-8 でデコードされるのか
それ以外でデコードされるのかは、サーバーによっても異なります。
半角英数字のみを使っていれば、こうした問題を避けることができます。
そのほか、アプリから利用する他社の DLL 等の不具合で、漢字を含めていると
正常に動作しないが、英数字のみにしていれば問題が無かったという事もありました。
ファイル名について言えば、HTTP の他、FTP でも似たような問題があります。
FTP サーバーおよび FTP クライアントの両方が、Unicode 対応のバージョンならば
問題は無いのですが、Unicode が使えない環境の場合、使用される文字コードが
処理系によって異なるため、マルチバイト文字を含んだファイルを
正しく処理できないことがあります。
http://support.microsoft.com/kb/332093/ja
また、ZIP ファイルも上記 FTP と似たような問題を含んでいます。
ZIP はそもそも多言語対応の規格では無かったため、ファイル名を CP437 という
英語圏の文字コードで扱う仕様になっています。最近では UTF-8 で格納できるように
拡張されているため、ZIP 規格上は日本語のファイル名も扱えるようになりましたが、
未だに UTF-8 に非対応なソフトも数多くあります(XP の ZIP フォルダ機能など)。
そのため、ファイル交換のためにも英数字の方が無難といえます。
# CP437 では、マルチバイト圏の国々にとっては都合の悪いため、実際には
# 本来は ZIP 規格に無い文字コード(日本では CP932 など)を格納した
# 非標準の ZIP ファイルも少なくありません。
https://connect.microsoft.com/VisualStudio/feedback/details/711235/system-io-ziparchive-zipped-only-utf-8-encoding
投稿者 zz6989  (社会人)
投稿日時
2012/3/3 08:35:54
ご多忙中申し訳ありません、ず~っと初心者のままの者です。
今回も初心者的な質問でご迷惑おかけします。
1.プロジェクト名に「両ネジスタッドの先端Rを求める」と設定しました、以下のフォルダーやファイル名も同じように名前に「両ネジスタッドの先端Rを求める」となっています。(漢字とカナを使用してます)
2.このプロジェクトには「LineShape」を使用しましたので「Visual Basic Power Packs」 が必要だと思い、発行の際に必須コンポーネント(Q)で「Visual Basic Power Packs 」を追加しました。
上記のようにしましたが、頒布して他のパソコンで「setup.exe」アイコンをクリックして実行しましたが、
下記のようなエラーが出てしまい、実効されません。
「System.Deployment.Application.InvalidDeploymentException (Zone)」エラーの内容が長いので以下は省略させてください。
MSDN ライブラリを見たところ、なにやら「プロジェクト名の配下にあるフォルダーとかファイル名に漢字をカナが混ざっている場合にエラーになる」とか書いてありました。(私の能力ではMSDN ライブラリは、難解ではっきり理解できませんでした。)
質問1. 「プロジェクト名に漢字とカナを混ぜてはいけない」 これは本当なのでしょうか?
質問2. それと、VB中学校ではプロジェクト名に日本語が使われているのを、あまり見かけませんが
プロのプログラマーの間では、そのような習慣があるのでしょうか?
ご多忙中申し訳ありませんが、教えて頂きたいのですが、宜しくお願いします。
休日等しかパソコンに触れる機会がありませんので、返信が遅れてしまいますが、お許しください。
今回も初心者的な質問でご迷惑おかけします。
1.プロジェクト名に「両ネジスタッドの先端Rを求める」と設定しました、以下のフォルダーやファイル名も同じように名前に「両ネジスタッドの先端Rを求める」となっています。(漢字とカナを使用してます)
2.このプロジェクトには「LineShape」を使用しましたので「Visual Basic Power Packs」 が必要だと思い、発行の際に必須コンポーネント(Q)で「Visual Basic Power Packs 」を追加しました。
上記のようにしましたが、頒布して他のパソコンで「setup.exe」アイコンをクリックして実行しましたが、
下記のようなエラーが出てしまい、実効されません。
「System.Deployment.Application.InvalidDeploymentException (Zone)」エラーの内容が長いので以下は省略させてください。
MSDN ライブラリを見たところ、なにやら「プロジェクト名の配下にあるフォルダーとかファイル名に漢字をカナが混ざっている場合にエラーになる」とか書いてありました。(私の能力ではMSDN ライブラリは、難解ではっきり理解できませんでした。)
質問1. 「プロジェクト名に漢字とカナを混ぜてはいけない」 これは本当なのでしょうか?
質問2. それと、VB中学校ではプロジェクト名に日本語が使われているのを、あまり見かけませんが
プロのプログラマーの間では、そのような習慣があるのでしょうか?
ご多忙中申し訳ありませんが、教えて頂きたいのですが、宜しくお願いします。
休日等しかパソコンに触れる機会がありませんので、返信が遅れてしまいますが、お許しください。
なんか、UTF-8 UTF-16 の基本の基本が学べたような気がします。
そうですか、.NET Framework はUTF-16 で管理されているんですか。う~んなるほど
>少数 → 小数ですね。
VB小学校の開設お願いします。
>再度確認。
チェック、はずしました。
>名前が短い方が失敗しているパターンもあったのですよね?
13文字未満では、失敗は確認されていません。
>名前が短い方が失敗しているパターンもあったのですよね?
下記の場合は13文字以上でエラーになるのは期待できますが。
1 2 3 4 5 6 7 8 910 111213
「テーパーノックピン寸法出力」
「直角三角形の各辺の長さを求める」、がどうして通過したのか不思議です。
今日、会社のパソコンでもWebからダウンロードして、「直角三角形の各辺の長さを求める」の「setup.exe」アイコンをクリックしたら無事通過して、ちゃんと「プログラムと機能」の一覧に表示されました。不思議だ~ LineShapeを使用してますのでPower Packsを必須コンポーネントに入れてます。
>これらは、「かな漢字で13文字以上だと失敗する」という仮定に反します。
そのとうりだと思います。
>名前の長さに影響していることは確かですが、何か他にも追加の条件がありそうです。
私もそう思います。
>もしかして、『テーパーノックピン寸法出力』という半角カナ混在の名前だったりしますか?
よ~く目を凝らして見直しましたが、たしかに全部全角文字です。
下記はマウスでコピーして貼り付けました。
テーパーノックピン寸法出力 13文字で、「かな漢字で13文字以上だと失敗する」の仮定に当てはまります。
>先の投稿で 【数え間違い】 をしていたので、あらためて再掲します。
わざわざ有難うございます。
>マニフェストファイルは通常 UTF-8~成功している点を説明できないですね。
そうなんです。
題名はこのままにしておきます。