アーカイブ

Archive for the ‘Visual Studio’ Category

ReSharperのテストランナーを使うとファイルを見失う、、、

Visual Studioのテストランナーだとうまくいくのに、ReSharperのテストランナーを使うとうまくいかないケースが有った。

デバックでおっていってみると、相対パスにあるユニットテスト用の外部ツールを起動している部分で、ファイルを見失っている感じこんなコードがあるところで、

Process.Start(Path.Combine(Assembly.GetExecutingAssembly().Location, @”..\..\..\..\Hoge.exe”))

Visual StudioのテストランナーだとAssembly.GetExecutingAssembly().Locationには実行しているアセンブリのパスが入るんだけれど、ReSharperのテストランナーから実行するとこんなパスが入ってくる。「%LOCALAPPDATA%\Temp\0ywyjnls.q4g\dbsqoo3y.wab\HogeHoge.Test\assembly\dl3\8aa495c4\efd6deeb_4459d301\」

これは、ReShaperのテストランナーがユニットテスト前にDLLをシャドーコピーしてからテストを実施するためなので、Visual StudioのReSharperメニュー > Options > Tools > UnitTesting > Unit Test Runnerの Shadow-copy assemblies begin tested のチェックを外してあげれば Visual Studioのテストランナーと同じ挙動になる。
Reshaper-Shadow-Copy

広告
カテゴリー:Visual Studio

Visual Studio 2017が起動しない場合、privateregistry.binを消してみよう

どうもVisual Studio 2017を起動してもなかなか立ち上がってこない。タスクマネージャーを見ていると、ほとんどCPUを使わない状態で停止し待っている感じがする。

Visual Studioをログ出力モードで起動したら、「AppId starting registry detouring」ってステップで動作が止まっているようなので、キーワードに入れて検索してみたら%LOCALAPPDATA%\Microsoft\VisualStudio\配下のprivateregistry.binを消したら解決したという情報があったので、とりあえずリネームしたら動いた。

VS2017 version 15.1 (26403.0) will only start as administrator.

privateregistory.binって何者?

まぁ、なんとなく名前から検討はつくんですが、Visual Studio インスタンスの検出および管理用のツールのVisual Studio インスタンスのレジストリの編集をみると、

Visual Studio 2017 ではレジストリ設定はプライベートな場所に保存されているため、同じバージョンの Visual Studio の複数のインスタンスを side-by-side で同じコンピューターで使用できます。

ってなっているので、レジストリ情報が何らかの原因で壊れていたのが原因なのかな。

カテゴリー:Visual Studio, 未分類 タグ:

No EditorOptionDefinitionと表示され、Visual Studioでソースコードが開けなくなった場合の対応

Windows Update をしたら、こんなダイアログが表示されソースコードが表示できなくなってしまいました。

image

No EditorOptionDefinition export found for the given option name: TextViewHost/ChangeTracking

パラメーター名:optionId

ぐぐると、似たような事例が。

http://stackoverflow.com/questions/23893497/no-editoroptiondefinition-export-found-error

Visual Studioを閉じた後、%LocalAppData%\Microsoft\VisualStudio\12.0\のフォルダーをリネームしたら直りました。

Microsoft.VisualStudio.Default.cacheで検索すると、該当フォルダーを消すと言うのは一般的?な対応みたいですね。

https://www.google.co.jp/search?q=Microsoft.VisualStudio.Default.cache

カテゴリー:Visual Studio タグ:

ODAC 12c Release 4 Visual Studio 2015対応とスキーマ比較の機能追加

ODAC 12c Release 4がダウンロード可能になっています。

OTNダウンロードページ:

http://www.oracle.com/technetwork/topics/dotnet/whatsnew/index.html

NuGet

 https://www.nuget.org/profiles/Oracle

 

今回のリリースはVisual Studio 2015への対応とマネージドドライバの機能拡張がほとんどなようですが、個人的に注目すべきはoffline schema comparisonです。

ODAC 12c Release 2で追加されたスキーマ比較はDatabase To Databaseだけだったのですが、今回追加されたOracle Database Project Version2(Beta)を利用すると、Database To Projectまたは、Project To Projectのスキーマ比較とスキーマの更新が利用できます。

キャプチャ 

サーバーエクスプローラーでの表の見え方が変わっています。関連表、、、まぁわかるけれど、、、

キャプチャ2

スキーマの比較を選択すると、データベース接続とプロジェクトを選択可能です。

古いデータベースプロジェクトには対象にできないようです。

image

Betaの悲しさか、サーバーエクスプローラーからデータベースプロジェクトへにインポートができないです。まぁスキーマ比較で入れれば良いんですけれど、、、

Betaが取れるのは何時かな。。。

カテゴリー:Oracle, Visual Studio

Visual Studio 2013でセットアッププロジェクトをビルドする。

この頃お仕事でも本格的にVisual Studio 2013を使うようになってきた(遅!!)んだけれど、以前Visual Studioのセットアッププロジェクトを使ってセットアップを作っていたプロジェクトをロードするとセットアッププロジェクトが非推奨となりセットアップのビルドができなくなってしまった。

InfoQの記事「Visual Studioのセットアッププロジェクトが復活」を参照すると、Visual SutdioギャラリーMicrosoft Visual Studio Installer Projectsをダウンロードしてインストールするか、「拡張機能と更新プログラム」からセットアップができるらしい。というかできた。

image

image

カテゴリー:Visual Studio, Windows

ODAC 12c Relase 3がリリース。Nuget版ODP.NETはもう少し後

Oracle Open World 2014で発表になった機能を実装し、ODAC12c Relase 3が正式リリースされたようです。ただし、このリリースと同時期に提供予定だったNugetの提供はもう少し後になるようです。

関連リソース

32-bit Oracle Data Access Components (ODAC) with Oracle Developer Tools for Visual Studio

http://www.oracle.com/technetwork/topics/dotnet/utilsoft-086879.html

Oracle Database Data Access Components Documentation 12c Release 3 (12.1.0.2.1)

http://docs.oracle.com/cd/E56485_01/index.htm

既存のODT.NETのVisual Studioごとの共存が可能に?

インストールの途中にこのODT.NET(Visual Studioの拡張)をインストール済みのどのVisual Studioに適用するかという選択と、ODP.NETをマシンワイドレベルで構成するかという選択が可能になっていました。これまでのODT.NETは単一バージョンのみサポートされていましたが、今回のバージョンからはVisual Studioのバージョンごとに複数バージョンのODT.NETのインストールが可能になっているようです。

image

左はVisual Studio 2010+ODTwithODAC112012、右はVisual Studio 2013+ODTwithODAC121021

ODT.NETをマシンワイドレベルで構成しない場合、下記のダイアログの説明の通り、machine.configへの登録やGACへの登録が行われないのでアプリケーションで新しいバージョンのODP.NETを利用する場合web.configやapp.configへプロバイダの登録が必要になります(直にDLLを参照する場合はなくても動く)。

image

インストール後にmachine.configのsystem.dataセクションをみると、Oracle Data Provider for .NETのプロバイダー設定が以前のまま保持されていることを確認できます。既存のアプリケーションは以前のバージョンで開発したい場合などに便利ですね。

<system.data>
  <DbProviderFactories>
    <add name="Oracle Data Provider for .NET"
         invariant="Oracle.DataAccess.Client"
         description="Oracle Data Provider for .NET"
         type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=4.112.1.2, Culture=neutral, PublicKeyToken=89b483f429c47342" />

    … 略 …
  </DbProviderFactories>
</system.data>

直にDLLを参照するようなアプリケーションを作成する場合は、参照先に注意

マシンワイドレベルで構成しない場合、たしかに既存アプリケーションの参照は以前のものを利用しているようですが、Visual Studioのアセンブリの参照ダイアログからOracle.DataAccess.Clientを選択しようとすると、新しいバージョンしか出てこないので、以前のアセンブリを参照したい場合は参照ボタンからじかにDLLを選択する必要がありそうです。間違って新しいバージョンを参照してアプリを作ってしまうと実行環境で動かないとかいうことも…

image

#これでやっとスキーマ比較を自分の普段使っているPCでも使えるようになった。

カテゴリー:Oracle, Visual Studio, 未分類 タグ: ,

dotTrace 6.0, dotMemory 4.2のリモートエージェント

以前dotMemory4.0のリモートプロファイリングについて記事を書きましたが、dotTrace 6.0やdotMemory 4.2ではRemoteAgentの場所が変わっているので探してしまいました。

dotTrace5.*やdotMemory 4.0, 4.1の場合、各プログラムのインストーロフォルダーにRemoteAgentフォルダーがあるのでそれを利用します。例えば下記の場所に有るはずです。

  • dotTrace 5.5: %ProgramFiles(x86)%\JetBrains\dotTrace\v5.5\Bin\Remote
  • dotMemory 4.1: %ProgramFiles(x86)%\JetBrains\dotMemory\v4.1\Bin\Remote
    dotTrace 6.0やdotMemory4.2では、インストーラーが一新された影響で、プログラムの一式が%ProgramFiles(x86)%ではなく、%LOCALAPPDATA%にインストールされるようになったためこんなパスにZIPファイルとして配置されているはずです。
  • dotTrace 6.0:%LOCALAPPDATA%\JetBrains\Installations\dotTrace01\RemoteAgent.zip
  • dotMemory 4.2:%LOCALAPPDATA%\JetBrains\Installations\dotMemory01\RemoteAgent.zip

dotTraceやdotMemoryのコンソールからリモートエージェントに接続する方法はこれまでと変わりありません。dotTraceの場合、上記のZIPファイルへのショートカットのリンクがあるので、ここからもリモートエージェントのフォルダーを参照することができます。

image

プロファイル対象のプログラムを指定するUIと、プロファイリング中のスナップショットを取得したり破棄したりするUIがガラッと変わっていますね。

image image