投稿者 魔界の仮面弁士  (社会人) 投稿日時 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