tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルアプリケーションのビルドと配布
記事No3620
投稿日: 2006/05/08(Mon) 20:00
投稿者雨雨
[OSのVer]:Windows2000    [VBのVer]:VB.NET2003  

ビルドしたアプリの配布で困っています。

初めてVB.NETでアプリを作成しました。
開発したPCではしっかり動くのですがビルドして
\binの下にできたhoge.exeとhoge.exe.configを他人のPCで動かすと
「共通言語ランタイムデバッグサービス
アプリケーションでハンドルできない例外が発生」となり動きません。

開発PCはwin2000 配布したPCはwinxp .NET frameworkは2台とも2.0です。
win2000にはodp.netがインストールしてありwinxpにはodp.netはインストールしてありません。
2台ともsqlnetの設定はしてあるのでsqlplusからoracleには接続できます。

一度下の2行をコメントにしたところ動いたので
oracle接続でエラーになっていると
思われるのですがどうしたらいいかわかりません。
Imports Oracle.DataAccess.Client
Imports Oracle.DataAccess.Types

odp.netを配布するPCすべてにインストールするのですか?
ビルドするときにOracle.DataAccess.dllの設定をしなければいけないのですか?

hoge.exeとhoge.exe.configとOracle.DataAccess.dllをwinxpにコピーしてみたり
しましたがエラーは変わりません。開発PCではしっかり動作します。
よろしくお願いいたします。

[ツリー表示へ]
タイトルRe: アプリケーションのビルドと配布
記事No3621
投稿日: 2006/05/08(Mon) 20:18
投稿者花ちゃん
> [OSのVer]:Windows2000    [VBのVer]:VB.NET2003  
> 開発PCはwin2000 配布したPCはwinxp .NET frameworkは2台とも2.0です。

もう一度環境を見直して下さい。VB.NET2003 は Framework 1.1 です。

Framework 2.0 は VB2005 用です。

[ツリー表示へ]
タイトルRe^2: アプリケーションのビルドと配布
記事No3623
投稿日: 2006/05/08(Mon) 21:27
投稿者魔界の仮面弁士
> > odp.netを配布するPCすべてにインストールするのですか?
バージョンがわかりませんが、9iであれば、exeを配置したフォルダに、
Oracle.DataAccess.dll と OraOps9.dll が必要になるはずです。

ただ、ODP.NET関連ファイルの再配布ができるかはどうかは、ライセンス契約の形態により異なります。
詳細は、Oracle社にお問い合わせください。

> もう一度環境を見直して下さい。VB.NET2003 は Framework 1.1 です。
> Framework 2.0 は VB2005 用です。
「.NET 2.0 しか入っていない環境」でも、「.NET 1.1 で作成したアプリ」は動作しますよね。
# もちろん、バージョン固有の違いはありますので、それぞれでのテストは必要ですけれども。

[ツリー表示へ]
タイトルRe^3: アプリケーションのビルドと配布
記事No3628
投稿日: 2006/05/09(Tue) 10:36
投稿者雨雨
[OSのVer]:Windows    [VBのVer]:VB.NET  
> もう一度環境を見直して下さい。VB.NET2003 は Framework 1.1 です。
> Framework 2.0 は VB2005 用です。
全然知りませんでした。これからFramework 1.1で作業を行っていきます。

> > > odp.netを配布するPCすべてにインストールするのですか?
> バージョンがわかりませんが、9iであれば、exeを配置したフォルダに、
> Oracle.DataAccess.dll と OraOps9.dll が必要になるはずです。
OraOps9.dllをexeと同じフォルダに置いたところ
あれが無いこれが無いとエラーが出てきたのでエラーがでなくなるまで
コピーしてみました。以下フォルダの中身です。
こんなにも必要なんですか?

hoge.exe
hoge.exe.config
Oracle.DataAccess.dll
oraclient9.dll
oracommon9.dll
ORACORE9.DLL
orageneric9.dll
oraldapclnt9.dll
oraldapjclnt9.dll
oran9.dll
ORANCDS9.DLL
orancrypt9.dll
oranhost9.dll
oranl9.dll
oranldap9.dll
oranldapj9.dll
ORANLS9.DLL
orannzsbb9.dll
oranoname9.dll
oranro9.dll
orantns9.dll
OraOps9.dll
ORAPLS9.DLL
ORASLAX9.DLL
ORASNLS9.DLL
ORASQL9.DLL
oratrace9.dll
ORAUNLS9.DLL
oravsn9.dll
orawtc9.dll
ORAXML9.DLL
ORAXSD9.DLL

実行してみましたがやはりoracleへのconnectでエラーがでているようなのですが
OracleExceptionの後の文字列が文字化けしていてエラー内容がわかりません。

アプリケーションのコンポーネントで、ハンドルされていない例外が発生しました。
************** 例外テキスト **************
Oracle.DataAccess.Client.OracleException
ŸŸ    at Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int
32 errCode,
OracleConnection conn, IntPtr opsErrCtx, IntPtr opsSqlCtx, Object src, String procedure,
String[] args)
   at Oracle.DataAccess.Client.OracleConnection.Open()
   at koc1.f_hoge_login.Button1_Click(Object sender, EventArgs e)
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.PerformClick()
   at System.Windows.Forms.Form.ProcessDialogKey(Keys keyData)
   at System.Windows.Forms.Control.ProcessDialogKey(Keys keyData)
   at System.Windows.Forms.TextBoxBase.ProcessDialogKey(Keys keyData)
   at System.Windows.Forms.Control.PreProcessMessage(Message& msg)
   at
System.Windows.Forms.ThreadContext.System.Windows.Forms.UnsafeNativeMethods+IMsoComponent.F
PreTranslateMessage(MSG&
msg)

以下コード

Imports System.Data
Imports Oracle.DataAccess.Client
Imports Oracle.DataAccess.Types
Public Class f_hoge_login
    Inherits System.Windows.Forms.Form

Private con As New
OracleConnection(System.Configuration.ConfigurationSettings.AppSettings("ora_hoge"
;))

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
        con.Open()
        Dim dr As OracleDataReader = createselectcommand().ExecuteReader
        dr.Read()
        con.Close()
End Sub

[ツリー表示へ]