プロジェクトに別ドライブのリポジトリを追加する方法
【状況】
TracLightningを利用していたら、プロジェクトを作成したドライブの容量が足りなくなってきたので別ドライブにsubversionのリポジトリを追加したい。
その際に、認証情報をプロジェクトと共有したい。
【環境】
サーバーOS:Windows2008R2系(Windowsならどれでも共通のはず)
TracLightning:Version.3.1.1
trac:Version 0.12.2.ja1
インストール先:C:\TracLight
【作業前の環境】
tracのアドレス:http://192.168.1.1/trac/MyProject
subversionのリポジトリ:http://192.168.1.1/svn/MyProject
【作業内容】
Dドライブに新しいリポジトリを追加し、MyProjectと共通の認証情報を利用する。
ついでに、http://192.168.1.1/trac/MyProject/browser (tracのリポジトリブラウザ)から参照できるようにする。
【作業手順】
- 新しいリポジトリを作成する
- httpサーバーから参照できるように設定する
- テキストエディタで「C:\TracLight\CollabNetSVN\httpd\conf\httpd.conf」を開く
- 「<Location "/svn/">」を探し、<Location>タグ全体をコピーする
- コピーしたものを編集する。以下は設定例。
- httpサーバーを再起動する(TracLightningサービスの再起動など)
- この状態で、「http://192.168.1.1/newSvn/MyProject/」にアクセスすると、新しいリポジトリを参照できる。
#変更内容は、1行目のLocationタグ内のアドレスと3行目の物理パスのみ
<Location "/newSvn/">
DAV svn
SVNParentPath "D:\svn\repo2"
SVNListParentPath on
AuthType Digest
AuthName tra\
AuthUserFile "C:\TracLight\projects\trac.htdigest"
Require valid-user\
AuthzSVNAccessFile "C:\TracLight\projects\svnauthz"
</Location> - Tracのwebから参照できるようにする
- ブラウザからTracLightningの管理コンソールを開く
- 左のメニューから、一番下の「リポジトリ」を選択する
- 右側からリポジトリの追加を行う
- 「追加」すると画面上部にメッセージが表示されるので、対応を行う
- スタートメニューから「Trac Lightning/コマンドプロンプト」を開く
- 以下を実行(2行目の最後の引数は3−3で設定した「名称」)
- 以下のメッセージを確認する(2行目は、新しく作成したリポジトリの最新リビジョン番号)
- ブラウザメニューの「リポジトリブラウザ」から参照できることを確認する
名称:NewRepo(適当にわかり易い名前を)
種別:(デフォルト)のまま
ディレクトリ:D:\svn\repo2\MyProject
>cd c:\TracLight\projects\trac\
>trac-admin MyProject repository resync "NewRepo"
>>Resyncing repository history for UT...
>>n revisions cached.
>>Done.
- 新リポジトリのコミット情報をtracに通知する
【作業後の環境】
tracのアドレス:http://192.168.1.1/trac/MyProject
subversionのリポジトリ:http://192.168.1.1/svn/MyProject
追加したsubversionのリポジトリ:http://192.168.1.1/newSvn/MyProject
subversionのリポジトリ(物理):c:\TracLight\projects\svn\MyProject
追加したsubversionのリポジトリ(物理):D:\svn\repo2\MyProject\NewRepo
Subversion実践入門:達人プログラマに学ぶバージョン管理(第2版)
- 作者: Mike Mason,でびあんぐる
- 出版社/メーカー: オーム社
- 発売日: 2007/04/21
- メディア: 単行本(ソフトカバー)
- 購入: 35人 クリック: 672回
- この商品を含むブログ (102件) を見る
セットアッププロジェクト作成時に躓いたところ
基本はdobonさんのところを参照で進めたけど、一部詰まったところがあったので。
セットアッププロジェクト: .NET Tips: C#, VB.NET, Visual Studio
http://dobon.net/vb/dotnet/deployment/index.html
setup.msiをいろいろ調整する手順
※VisualStudio2008 Standardの場合。
- ウィザードの画面遷移を変更したい場合(フォルダ指定をデフォルトフォルダに限定したい場合等)
- セットアッププロジェクトを右クリックし、「表示」→「ユーザーインターフェース」から編集。
- バナーについて
- バナー追加手順
標準で表示されるバナーが気に入らない場合、以下の手順で変更する。- セットアッププロジェクトのフォルダ等にファイルをコピーしておく。
※後続処理でファイルを選択してもプロジェクトフォルダにコピーされない(絶対パスを保存する)ので、後々の管理が面倒になる。 - セットアッププロジェクトを右クリックし「追加」→「ファイル」
- 1で追加したファイルを指定する。
- ソリューションエクスプローラに追加された画像ファイルのプロパティを開き、ExcludeをFalseにする。
※これをしないと、メインアプリの出力フォルダに追加される。格好悪い。 - セットアッププロジェクトを右クリックし、「表示」→「ユーザーインターフェース」
- 表示される要素の各プロパティの"BannerBitmap"から「参照」を選択
- 検索対象からアプリケーションフォルダを選択すると、3で指定したファイルが表示されているので選択する。
- セットアッププロジェクトのフォルダ等にファイルをコピーしておく。
- ショートカットの追加手順(デスクトップ・スタートメニュー)
- 方式1
- セットアッププロジェクトを右クリックし「表示」→「ファイルシステム」
- 右ペインに表示されているプロジェクトファイルを右クリックし、「○○○へのショートカットを作成」をクリックする。
- 同じ場所にショートカットファイルが表示されるので、左側のツリーの好きな場所にドラッグ&ドロップする。
(移動のみでコピーできない) - スタートメニュー("ユーザーのプログラムメニュー")の場合、フォルダを作成しないとスタートメニューのプログラム直下に配置される。
- 方式2
- セットアッププロジェクトを右クリックし「表示」→「ファイルシステム」
- ショートカットを作成したい場所を左ペインのツリーから選択する
- 右ペインを右クリックし、「新しいショートカットの作成」
- アプリケーションフォルダ内の本体の出力(○○○のプライマリ出力)を選択し、"OK"ボタンを押す。
※左のツリーからフォルダを右クリックし、「ユーザーのデスクトップへのショートカットを作成」等を選択しても、そのフォルダを開くショートカットしか作成されないので注意。
私はこれではまっていました・・・
- 方式1
ユーザーにショートカットの登録有無を選択させる方法についてはdobonさんところを参照。
DataMemberにDataTableを設定した場合の注意事項
WCFでサービスからデータを受信しようとしたらエラーが発生した。
DataTableを受け渡しする場合、TableNameを設定しないとxml化できずにエラーとなる。
エラーメッセージだけじゃ判断できないからちょっと悩んでしまった。
Exception Type: System.ServiceModel.CommunicationException
Message: ソケット接続が中止されました。これは、メッセージ処理時のエラー、リモート ホストでの受信タイムアウトの超過、または基になるネットワーク リソースの問題が原因で発生する可能性があります。ローカル ソケットのタイムアウトは '01:04:59.9680000' でした。
Stack Trace:Server stack trace:
場所 System.ServiceModel.Channels.StreamConnection.Read(Byte buffer, Int32 offset, Int32 size, TimeSpan timeout)
場所 System.ServiceModel.Channels.SessionConnectionReader.Receive(TimeSpan timeout)
場所 System.ServiceModel.Channels.SynchronizedMessageSource.Receive(TimeSpan timeout)
場所 System.ServiceModel.Channels.FramingDuplexSessionChannel.Receive(TimeSpan timeout)
場所 System.ServiceModel.Channels.FramingDuplexSessionChannel.TryReceive(TimeSpan timeout, Message& message)
場所 System.ServiceModel.Dispatcher.DuplexChannelBinder.Request(Message message, TimeSpan timeout)
場所 System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object ins, Object outs, TimeSpan timeout)
場所 System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object ins, Object[] outs)
場所 System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
場所 System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)Exception rethrown at [0]:
場所 System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
場所 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
場所 *.IMyService.Hoge(MyParameter prm)
場所 *.MyService.Hoge(MyParameter prm) <- WCFサービス呼び出しの開始位置
クライアントPCに配布するアプリケーションでodp.NETを利用する方法
クライアントPCでodp.NETを使用するためには、どうやらDLLをアプリケーションのフォルダに配置するだけではだめな模様。
(VS上でdllのローカルコピーを指定してもうまくいかない)
そのため、OracleInstantClientをクライアントPCにインストールする必要がある。
batファイルを一つ叩くだけでOKだが、それにしても一般ユーザーの利用するPCにインストールする場合は注意が必要。
とりあえず以下のようにすることで何とかなった。
開発PC:ODAC 11.1.0.7.20 with Oracle Developer Tools for Visual Studioを普通にインストール(UniversalInstaller)
アプリ配布先PC:ODAC 11.1.0.7.20 with Xcopy Deployment(install.batを適切にカスタマイズして使用)
ClickOnceを使っているので、そこの自動インストールコンポーネントに追加できるようになって欲しいところ。
ちなみに、これがない時代はUniversalInstaller使わないといけなかったとか。
odp.NETでバインドがうまくできない
初期状態だと、バインドはバインド順になっているようなので、バインド変数名で指定したい場合は
OracleCommand.BindByName = true;
にする。
-
-
- -
-