アーカイブ

Archive for the ‘プログラミング’ 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, 未分類 タグ:

メモ Microsoftによる.NETアーキテクチャの手引きに関する発表

Microsoftによる.NETアーキテクチャの手引きに関する発表

https://www.infoq.com/jp/news/2017/05/microsoft-architecture-guidance?utm_campaign=infoq_content&utm_source=infoq&utm_medium=feed&utm_term=global

4つのアプリケーションアーキテクチャに関する手引きのドラフトが、MicrosoftのDeveloper DivisionとVisual Studioの製品チームから入手可能になった。これらのドラフトは4つの領域を対象としている。マイクロサービスとDocker、ASP.NETによるWebアプリケーション、Azureのクラウド配置、そしてXamarinによるモバイルアプリケーションである。それぞれの手引きはそれぞれのトピックに沿った複数の文書から構成される。Microsoftはこれらのドラフト文書に対して一般のコミュニティからのフィードバックを求めている。

軽く見ようかと思ったら、全部が全部重くて挫折しました。。。

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 タグ:

気になるAdvent Calendar 2016

カテゴリー:プログラミング, メモ

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

ASP.NET WebAPIをVB.NETで利用する場合に、ヘルプページのコメントを利用する。

ASP.NETではVB.NETの積極的なサポートがなくなりつつ有るこの頃ですが、うちのちかくではVB.NETの要望が収まらず、VB.NET+WebAPIでアプリを作っています。

この頃のVisual StudioのWebAPIプロジェクトでは、APIのヘルプページを自動的に作成する機能が提供されていますが標準のままだと、ドキュメンテーションコメントを書いてもDescriptionに反映してくれません。

検索すると、Areas/App_Start/HelpPageConfigの下記コメントを外せという指示とともにWebプロジェクトのビルド設定で、ドキュメンテーションコメントを吐き出す場所を設定しろという記事が目につきます。

Public Sub Register(config As HttpConfiguration)
    '' Uncomment the following to use the documentation from XML documentation file.
    'config.SetDocumentationProvider(New XmlDocumentationProvider(HttpContext.Current.Server.MapPath("~/App_Data/XmlDocument.xml")))

 

C#のWebプロジェクトのビルドプロパティー

image

VB.NETのWebプロジェクトのコンパイルプロパティー

image

ところがVB.NETのASP.NETプロジェクトではこの項目がありません。ただ、VB.NETのプロジェクトファイルにもProject/PropertyGroup/DocumentationFile要素はあるのでこいつにパスを指定すれば大丈夫だろ。と思ったのですが、、、出てくれません。無視されるようです。。。

ただ、まぁ指定のフォルダーにドキュメンテーションコメントがコピーされればいいので、ビルド後イベントを使ってあげましょう。

image

copy "$(ProjectDir)bin\$(TargetName).xml" "$(ProjectDir)App_Data\"

カテゴリー:ASP.NET, Visual Basic