none
一部表示しないフォームがあります(指定されたファイルがみつかりません)。 RRS feed

  • 質問

  • VB2010---Win7
    サーバー:SQL2005 (Windows Server 2003R2)

    上記の環境で、VBでコードを書いています。
    自宅で、サーバーを設置しデータベースソフトを作成しています、問題なく動いています。
    (まだ、全部が完成ではないですが)


    試験用に、会社にも同じ(?)環境を作成しました。
    同僚に見てもらうためです。
    会社のサーバーは、新設PCで、同じSQL2005(Windows Server 2003R2)。 クライアントPCは、ここにVirtualで作成しました。(設定は、私はできないので専門家に依頼)


    ほとんど(90%以上)は動くのですが、4か所ほど表示しないフォームがあります。
    エラー表示は、最後に記します。


    1.そのフォームを、メニューの他のボタンに持って行っても開きません、エラー表示します。
      複雑なフォームではありません。
    2.元のボタンに、他のフォームをもってくると、他のフォームなら表示します。
    3.そのフォームのコード(Form_Load)に問題があるかもと考え、Form_Load内のコードの大半を削除し、
      TextBoxに指定の文字(例:AAAA)を表示するコードを一行だけ残しました。ついでに、Form_Load以外のものも全て削除。
      自宅では、そのフォームは正常に表示します(一つのTextBoxに、文字がぽつんと表示されるだけですが)。
      デザイナー関係のコードは背後で自動作成されるので、触っていません。
      
      ですが、会社の実験環境では、そのフォームは、そうやっても表示しません(エラー表示)。

    4.会社の環境でのクライアントPCには、Visual Studio 2010等は入れていません。.NetFrameWorkのみです。


    表示されるエラー:
    ”ファイルまたはアセンブリ 'Microsoft.VisualBasic.PowerPacks.Vs,Version=10.0.0.0,Culture=neutral,
    Publickey Token= b03f5f7f11d50a3a’、またはその依存関係の一つが読めません。 指定されたファイルがみつかりません。”


    原因と解決法について、教えていただけますか?
    1.作成したコードに問題は無いと思うのですが(自宅では正常なので)。
    2.「指定されたファイル」とは、何ですか?
    3.会社の環境、例えば.NetFrameWorkに問題があるのでしょうか? Version違いとか?

     よろしく、お願いします。

    YKsaila

    2013年4月16日 7:26

回答

  • VB2010---Win7
    サーバー:SQL2005 (Windows Server 2003R2)

    上記の環境で、VBでコードを書いています。
    自宅で、サーバーを設置しデータベースソフトを作成しています、問題なく動いています。
    (まだ、全部が完成ではないですが)
      
    ・・・・・・ですが、会社の実験環境では、そのフォームは、そうやっても表示しません(エラー表示)。

    4.会社の環境でのクライアントPCには、Visual Studio 2010等は入れていません。.NetFrameWorkのみです。

    表示されるエラー:
    ”ファイルまたはアセンブリ 'Microsoft.VisualBasic.PowerPacks.Vs,Version=10.0.0.0,Culture=neutral,
    Publickey Token= b03f5f7f11d50a3a’、またはその依存関係の一つが読めません。 指定されたファイルがみつかりません。”

    もしかすると、以下のスレッドが参考になるかもしれません。

    Microsoft.VisualBasic.PowerPacks.Vsの参照について


    ひらぽん http://d.hatena.ne.jp/hilapon/

    • 回答としてマーク yksaila 2013年4月18日 22:31
    2013年4月16日 7:43
    モデレータ
  • たぶん、Visual Basic Power Packs というカテゴリに入っているコントロール・アイテムを利用されているのでしょう。(LineShape とか)
    このアセンブリは .NET Framework には含まれていませんので、別途インストールする必要があります。
    ひらぽんさんがリンクされているスレッドに、再頒布パッケージの話とかも書いてあるので参考にしてみてください。

    あるいは、Visual Basic Power Packs に属するコントロールなどを削除し、参照設定からも削ってコンパイルし直すかですね。
    それは環境要件などによるので、どちらにするかは自分で検討してください。

    • 回答としてマーク yksaila 2013年4月18日 22:31
    2013年4月16日 13:52
    モデレータ
  • エラーメッセージを見ると、皆さんが言われているようにVisual Basic Power Packsがインストールされていないからだと思いますが、気になったのは、TextBoxを一つ残しただけでもまだエラーが出ているということです。そのフォームのInitializeComponentに、何かVisual Basic Power Packs関連の記述が残っていないか確認してみて下さい。
    InitializeComponentは、ナビゲーションバー(コードエディタのすぐ上に表示されているコンボボックスが2つ左右に並んでいるもの)より、左のコンボボックスにフォームのクラス名、右のコンボボックスにInitializeComponentを選択すると表示されます。


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/

    • 回答としてマーク yksaila 2013年4月18日 22:43
    2013年4月17日 0:53
    モデレータ
  • Azuleanさんへ

    有難うございます。 助かりました!

    フォームのデザイナーコードの中に、Visual Basic Power Packs関連コードがありました。

    たしかにLineShape を使用しています(フォームに横線を引いています)。 まず、これに関係しているコードを削除しました。

    で、その代わりに、メニュー画面のコマンドボタン(例:F_User_Information を開くボタン)の中に

    下記のコードを入れました(フォーム表示としては、同じです)。 

       Dim MF As New F_User_Information
            Dim g As Graphics = MF.CreateGraphics
            MF.Owner = Me
            MF.Show()

        g.DrawLine(Pens.Black, 12, 350, 708, 350)

    当初は勉強のため、このコードで線を描いていましたが、LineShapeのほうが簡単なのでいくつかのフォームではLineShapeを使用しています。Visual Basic Power Packsがインストールされていない環境(クライアントPC)もありますので、上記のコードで線を引くほうが無難ということですね。

    まだ、会社の環境で実験していませんが、多分表示すると思います(結果は、ご報告します)。

    YKsaila

        

         




    • 編集済み yksaila 2013年4月18日 22:32
    • 回答としてマーク yksaila 2013年4月18日 22:44
    2013年4月18日 22:30
  • 会社の環境下で実験しました。

    すべて、正常に動作・表示します!

    今後は、LineShapeは使わずに、線引きはコードで書くしかないですね。

    ~Designer.vb--- Visual Basic PowerPacks関連削除(ShapeContainerも削除)

    ~resx--- ここにも、LineShapeがあるので削除。

    皆さま、有難うございました。 本当に助かりました!

    YKsaila

    • 回答としてマーク yksaila 2013年4月19日 5:13
    2013年4月19日 5:08

すべての返信

  • VB2010---Win7
    サーバー:SQL2005 (Windows Server 2003R2)

    上記の環境で、VBでコードを書いています。
    自宅で、サーバーを設置しデータベースソフトを作成しています、問題なく動いています。
    (まだ、全部が完成ではないですが)
      
    ・・・・・・ですが、会社の実験環境では、そのフォームは、そうやっても表示しません(エラー表示)。

    4.会社の環境でのクライアントPCには、Visual Studio 2010等は入れていません。.NetFrameWorkのみです。

    表示されるエラー:
    ”ファイルまたはアセンブリ 'Microsoft.VisualBasic.PowerPacks.Vs,Version=10.0.0.0,Culture=neutral,
    Publickey Token= b03f5f7f11d50a3a’、またはその依存関係の一つが読めません。 指定されたファイルがみつかりません。”

    もしかすると、以下のスレッドが参考になるかもしれません。

    Microsoft.VisualBasic.PowerPacks.Vsの参照について


    ひらぽん http://d.hatena.ne.jp/hilapon/

    • 回答としてマーク yksaila 2013年4月18日 22:31
    2013年4月16日 7:43
    モデレータ
  • たぶん、Visual Basic Power Packs というカテゴリに入っているコントロール・アイテムを利用されているのでしょう。(LineShape とか)
    このアセンブリは .NET Framework には含まれていませんので、別途インストールする必要があります。
    ひらぽんさんがリンクされているスレッドに、再頒布パッケージの話とかも書いてあるので参考にしてみてください。

    あるいは、Visual Basic Power Packs に属するコントロールなどを削除し、参照設定からも削ってコンパイルし直すかですね。
    それは環境要件などによるので、どちらにするかは自分で検討してください。

    • 回答としてマーク yksaila 2013年4月18日 22:31
    2013年4月16日 13:52
    モデレータ
  • エラーメッセージを見ると、皆さんが言われているようにVisual Basic Power Packsがインストールされていないからだと思いますが、気になったのは、TextBoxを一つ残しただけでもまだエラーが出ているということです。そのフォームのInitializeComponentに、何かVisual Basic Power Packs関連の記述が残っていないか確認してみて下さい。
    InitializeComponentは、ナビゲーションバー(コードエディタのすぐ上に表示されているコンボボックスが2つ左右に並んでいるもの)より、左のコンボボックスにフォームのクラス名、右のコンボボックスにInitializeComponentを選択すると表示されます。


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/

    • 回答としてマーク yksaila 2013年4月18日 22:43
    2013年4月17日 0:53
    モデレータ
  • Azuleanさんへ

    有難うございます。 助かりました!

    フォームのデザイナーコードの中に、Visual Basic Power Packs関連コードがありました。

    たしかにLineShape を使用しています(フォームに横線を引いています)。 まず、これに関係しているコードを削除しました。

    で、その代わりに、メニュー画面のコマンドボタン(例:F_User_Information を開くボタン)の中に

    下記のコードを入れました(フォーム表示としては、同じです)。 

       Dim MF As New F_User_Information
            Dim g As Graphics = MF.CreateGraphics
            MF.Owner = Me
            MF.Show()

        g.DrawLine(Pens.Black, 12, 350, 708, 350)

    当初は勉強のため、このコードで線を描いていましたが、LineShapeのほうが簡単なのでいくつかのフォームではLineShapeを使用しています。Visual Basic Power Packsがインストールされていない環境(クライアントPC)もありますので、上記のコードで線を引くほうが無難ということですね。

    まだ、会社の環境で実験していませんが、多分表示すると思います(結果は、ご報告します)。

    YKsaila

        

         




    • 編集済み yksaila 2013年4月18日 22:32
    • 回答としてマーク yksaila 2013年4月18日 22:44
    2013年4月18日 22:30
  • trapemiyaさんへ

    有難うございます。

    残したのはコードの中では一個のTextBoxについての記述のみですが、デザイナー画面はそのままでした。

    ですから、デザイナーに関するコードを見ましたら、Visual Basic Power Packs関連コードがありました。

    詳細は、Azuleanさんへの返信に書きましたのでお読みください。

    >InitializeComponentは、ナビゲーションバー(コードエディタのすぐ上に表示されているコンボボックスが2つ左右に並んでい>るもの)より、左のコンボボックスにフォームのクラス名、右のコンボボックスにInitializeComponentを選択すると表示されま>す。

    上記については、探しても見当たりません。 再度見てみますが、 表示方式が違うのでしょうか?

    ま、でも、できたから、いいことにしましょうか(会社の環境での実験が未だですが)。

    YKsaila


    • 編集済み yksaila 2013年4月19日 12:41
    2013年4月18日 22:43
  • yksaila さま よろしく。

    途中から首を突っ込みます、皆様、失礼します。

    可笑しいですね、InitializeComponent 表示されませんか。 それでは、 

    ソリューションエクスプローラ で左から2番目のアイコン 全てのファイルを表示 をクリックし
    該当する Form_xxx.vb の配下の Form_xxx.Designer.vb を選択し
    その中に、以下で始まるブロックを探して下さい。

        'Windows フォーム デザイナで必要です。
        Private components As System.ComponentModel.IContainer
    
        'メモ: 以下のプロシージャは Windows フォーム デザイナで必要です。
        'Windows フォーム デザイナを使用して変更できます。  
        'コード エディタを使って変更しないでください。
        <System.Diagnostics.DebuggerStepThrough()> _
        Private Sub InitializeComponent()

    これが該当するものです。

    • 編集済み ShiroYuki_Mot 2013年4月19日 0:56 お名前を訂正 失礼しました
    2013年4月19日 0:54
  • 上記については、探しても見当たりません。 再度見てみますが、 表示方式が違うのでしょうか?

    ナビゲーションバーが表示されていないということでしょうか? ナビゲーションバーの表示/非表示を切り替えるには、以下を参考にして下さい。

    今日のワンポイント : ショートカット キーでナビゲーション バーにアクセスする方法- #100
    http://blogs.msdn.com/b/vstipsjpn/archive/2008/08/21/8386320.aspx

    Remove the Navigation Bar
    http://blogs.msdn.com/b/zainnab/archive/2010/06/05/remove-the-navigation-bar-vstiptool0028.aspx

    #あれ? VBだとグレーアウトしてますね。必ず表示されるように仕様が変更になったのかなぁ? 少し調べてみたのですが、わかりませんでした。


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/

    2013年4月19日 1:08
    モデレータ
  • trapemiyaさんへ

    Versionが違うせいだと思います。

    目的のコードは、ソリューションエクスプローラで該当するフォームをクリックすると、そこにデザイナー(~designer.vb)がありそれをクリックしますと、デザイナーコードが表示されます。そこに、ありました。

    YKsaila

    2013年4月19日 1:18
  • Versionが違うせいだと思います。

    目的のコードは、ソリューションエクスプローラで該当するフォームをクリックすると、そこにデザイナー(~designer.vb)がありそれをクリックしますと、デザイナーコードが表示されます。そこに、ありました。

    もちろん、そこからでも行けるのですが、例えば以下のページを見るとVB2010にもナビゲーションバーがあるようです。

    Visual Basic 2010でのプログラミング手順
    http://infotechfactory.biz/vb/vb2010foundation/2/1.html


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/

    2013年4月19日 2:42
    モデレータ
  • 会社の環境下で実験しました。

    すべて、正常に動作・表示します!

    今後は、LineShapeは使わずに、線引きはコードで書くしかないですね。

    ~Designer.vb--- Visual Basic PowerPacks関連削除(ShapeContainerも削除)

    ~resx--- ここにも、LineShapeがあるので削除。

    皆さま、有難うございました。 本当に助かりました!

    YKsaila

    • 回答としてマーク yksaila 2013年4月19日 5:13
    2013年4月19日 5:08
  • ShiroYuki_Motさんへ

    あ、これなら見ています。 

    すいません、うっかりしていました。

    YKsaila

    2013年4月19日 5:16