隅っこのおぼえがきノート

ちょっとメモしたいことをメモしていきます。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

  1. --/--/--(--) --:--:--|
  2. スポンサー広告

[Visual Studio 2013]ユーザータイプの色が変えられない

Visual Studio 2013をインストールした。
早速C#のプロジェクトを作ってプログラミングしてみたものの、何だかテキストエディタの表示が妙に見づらい。
よく見たらクラス名とかが色分けされてない。見づらい。
既に入れてあるVS2010の設定を引き継いでるはずなんだけど漏れてしまったのかもしれない、そう思ってメニュー[ツール][オプション][環境][フォントおよび色]でユーザータイプを探してみたのだが、肝心のユーザータイプの項目がごっそり見つからない。
名前が変わってるわけでもなく、ただ項目が無い。
vssettingを直に編集してUser Type突っ込んでみたり色々やってみた感じ、どうもVisual Studioのバグっぽい気がする。
調べたらこんな情報を発見。日本語ページはなかった。こんなことで悩んでる日本人は私だけなのかもしれない。

Visual Studio 2013 - User types color is gone - Stack Overflow
http://stackoverflow.com/questions/19560161/visual-studio-2013-user-types-color-is-gone

How can I get user type C# syntax highlighting working again in VS 2012 RC? - Stack Overflow
http://stackoverflow.com/questions/10970305/how-can-i-get-user-type-c-sharp-syntax-highlighting-working-again-in-vs-2012-rc

世界には何十人も同じ現象で困ってる人がいたみたいです。私ひとりじゃなかった。もう何も怖くない。

管理者権限でコマンドプロンプト立ち上げてコマンド実行。
一応、書いておく。

cd C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE
devenv.exe /setup

この回答通りにやってみたら、見事ユーザータイプが出てくるようになりました。
会いたかったよユーザータイプ。

vsfont

  1. 2014/11/26(水) 15:14:15|
  2. Visual Studio
  3. | トラックバック:0
  4. | コメント:0

Visual Studioの外部ツール機能を使ってTortoiseGitのダイアログを呼び出す

Visual Studioの外部ツール機能を使ってTortoiseSVNのダイアログを呼び出す
http://sumikko8note.blog.fc2.com/blog-entry-34.html

この記事を書いて丸一年。
相変わらずVS2008とSVNを使っているが、今度は新たにGitを使うことになった。
となると、やっぱり、TortoiseSVNと同じようにTortoiseGitもVisual Studioのツールバーに登録したくなる。
自分で書いといて言うのもなんだけど、アレ結構便利だ。
アドオンもあるのだろうけど、自分はコレで十分だ。

幸い、TortoiseSVNとTortoiseGitのコマンドはほぼ一緒だったので、同じ要領で外部ツールに登録すれば良い。
とりあえず「プル」と「ログ」と「変更をチェック」ができればいいな。
コミットは「変更をチェック」からすればいいや。コミットのコマンドは何だか難しそうだったし。
そうと決まれば外部ツールにちくちく登録。

VS外部ツールGit

タイトル:Git プル
コマンド:C:\Program Files\TortoiseGit\bin\TortoiseGitProc.exe
引数:/command:pull /path:"$(SolutionDir)"

タイトル:Git ログ
コマンド:C:\Program Files\TortoiseGit\bin\TortoiseGitProc.exe
引数:/command:log /path:"$(SolutionDir)"

タイトル:Git 変更をチェック
コマンド:C:\Program Files\TortoiseGit\bin\TortoiseGitProc.exe
引数:/command:repostatus /path:"$(SolutionDir)"

登録できたら、TortoiseSVNのときと同じようにツールバーへ登録してやれば、完成。
これでGitが少し使いやすくなった。
  1. 2013/12/26(木) 12:33:19|
  2. Visual Studio
  3. | トラックバック:0
  4. | コメント:0

Visual Studioの外部ツール機能を使ってTortoiseSVNのダイアログを呼び出す

TortoiseSVNをアップデートしようとTortoiseSVNのサイトに行ったら、気になる記事を見つけた。

How to integrate TortoiseSVN into Visual Studio
http://tortoisesvn.net/visualstudio.html

英語は読めなんだが、Visual Studio上でTortoiseSVNのダイアログを呼び出す方法が載ってるようだ。
Visual Studio + TortoiseSVN で開発している身にはちょっと便利そう。
わざわざエクスプローラを表示して更新とかコミットとか、割とめんどくさいんだよね。
それがVisual Studioから直接呼び出せればかなり楽そうな気がする。そんなわけで書いてある通りに設定してみた。

……が!
残念なことに、Visual Studio 2008では最後のコンテキストメニューへの登録ができなかった。
恐らく最近追加された機能なのだろう。Visual Studio 2012ならきっと搭載されているのだろう。
無いものは仕方が無いので、代わりにツールバーからクリック一つで呼び出せるようにしてみた。
設定はめんどくさかったけど、うん、快適。なんだかデキるプログラマーになった気分だ。気分だけ。

1.Visual Studio 2008のメニュー→[ツール]→[外部ツール]
2.[追加]していろいろ設定する。環境に応じて適宜設定。

【設定例:作業コピーを更新するボタンを作る場合】
タイトル:SVN 更新
コマンド:C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe
引数:/command:update /path:"$(SolutionDir)"
他:特にいじらない

VS外部ツール

↑この例だと、外部コマンド3に「SVN 更新」というコマンドが割り当てられる。

3.[OK]で閉じる
4.メニューの[ツール]→[ユーザー設定]
5.[コマンド]タブの[分類]の[ツール]、[コマンド]の[外部コマンド3]を選ぶ
6.[外部コマンド3]をD&Dしてツールバーの好きなところに置く

そうすると、こんな感じのボタンができます。
外部ツール2
リポジトリからチェックアウトした作業コピーのソースコードを更新したいときは、こいつをポチっと押すだけ。
地味に便利だなー。

テキストボタンなんて嫌だ!という人はアイコンを設定すれば良い。
7.[ユーザー設定]のダイアログを開いたまま、先ほどツールバーに追加したボタンを右クリック
8.[ボタンイメージの貼り付け]とか[ボタンイメージの編集]とか[ボタンイメージの変更]とかを駆使してアイコンを設定
9.アイコンが決まったらボタンを右クリックして[既定のスタイル]を選択

TortoiseSVNのアイコンを拝借して設定すると、こんな感じになります。これこれ。
外部ツール3
(画像をクリップボードにコピーしておけば、[ボタンイメージの貼り付け]でアイコンに設定することができます)

更新だけじゃなくて、コミットやログの参照もしたいなら、外部コマンドにどんどん割り当てればよい。
引数を変えてやればいいだけなので特に苦労はしないはず。
何を設定すればいいのかは↓のサイトさんを見ればすぐわかる。

付録D TortoiseSVN の自動化
http://tortoisesvn.net/docs/release/TortoiseSVN_ja/tsvn-automation.html

外部コマンドは登録している順番に「外部コマンド1」、「外部コマンド2」、「外部コマンド3」……と割り当てられていくので、何番目に何を設定したのか少しの間だけ覚えておこう。

というわけで、よく使うコマンドを登録しておけば地味に便利。
もっと早く知っていたら良かったなぁ。
外部ツール4

それにしても、この外部ツール、いろいろと使えそうだな。
  1. 2012/12/21(金) 23:10:22|
  2. Visual Studio
  3. | トラックバック:0
  4. | コメント:0

C++ファイルプロパティの「コンテンツ」?

Visual Studio の C++ のファイルのプロパティに、[コンテンツ]という項目があるのに気がついた。
デフォルトはFalseで、FalseまたはTrueが選べる。
説明を見ると、[ファイルが配置可能な内容かどうかを指定します。]となっている。

cpp_file_property.png

なんだこのプロパティ。
配置というからにはインストーラに関わるものだと思うが、F1でヘルプを出しても、ggってもbingっても、このプロパティが何なのかイマイチわからない。

こいつをTrueにしてやると、csprojファイルの中にDeploymentContentというプロパティが追加される。
たぶんその説明が↓なんだろうが、正直よくわからない。

VCFile.DeploymentContent プロパティ
http://msdn.microsoft.com/ja-jp/library/microsoft.visualstudio.vcprojectengine.vcfile.deploymentcontent(v=vs.90).aspx

このプロパティの正体は……やっぱりインストーラ絡みの設定のようです。
setupプロジェクトのファイルシステムエディタでプロジェクト出力を追加する際に、いつもの[プライマリ出力]じゃなくて[コンテンツ ファイル]を指定してやることで、[コンテンツ]プロパティをTrueにしたファイルをインストール環境にコピーすることができます。
(……「配置」って、インストール環境にコピーするって意味で合ってるかな?)

setup_contents.png

とはいえ、別にこの[コンテンツ ファイル]を使わなくてもファイルそのものを直接指定できたりするから、あまり使う機会は無いかも。
でも、知っておいて損は無いよね。何に使われるかよくわからない設定って怖いもんね。
  1. 2012/07/24(火) 12:02:08|
  2. Visual Studio
  3. | トラックバック:0
  4. | コメント:0

CurrentSettings.vssettingsの保存場所がおかしくなる?

Visual Studio 2008 の[設定のインポートとエクスポート]を使ったら、ちょっと妙なことになった。
設定自体は無事にエクスポート&インポートできたんだけど、デスクトップにCurrentSettings.vssettingsファイルが残るようになってしまった。
どうも、エクスポートしたvssettingsファイルをデスクトップに仮置きして使ったのがまずかったらしい。

CurrentSettings.vssettingsを削除してVisual Studioを起動すると、こんな感じのエラーが出る。

vs_setting_error.png
「自動保存された設定ファイル '(C:\Documents and Settings\(ユーザー名)\デスクトップ\CurrentSettings.vssettings'が見つかりません。[設定のインポートとエクスポート]ページでこのファイルを変更できます。IDEでは、最新の設定をこのセッションに使用します。」

[設定のインポートとエクスポート]をやって、デスクトップじゃなくてマイドキュメント下の設定ファイルを参照させてみたが直らず、デスクトップにファイルが残るまんま。
最悪、無視しても良いんだけど、気になるので調べてみたら、それっぽいページを発見。

Settingファイルの取得時エラー発生
http://social.msdn.microsoft.com/forums/ja-JP/sqlserverja/thread/4955df09-c16a-42aa-82b2-4560de6e3cae/

レジストリを見てみる。値にそれっぽいのが入ってるぞ。

HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\9.0\Profile
・AutoSaveFile
 →%vsspv_user_appdata%\デスクトップ\CurrentSettings.vssettings
・DefaultSettingsDirectory
 →%vsspv_user_appdata%\デスクトップ\

%vsspv_user_appdata%は、Visual Studioが使う変数的なものだろうな、大体の環境なら恐らく"C:\Documents and Settings\(ユーザー名)"となるはずだ。……あ、Windows XPの場合ならね。
こいつらの"%vsspv_user_appdata%\デスクトップ"部分を"%vsspv_visualstudio_dir%\Settings"に置き換えてみたところ、エラーメッセージも出なくなった。
"%vsspv_visualstudio_dir%ってのは、マイドキュメント下にあるVisual Studio 2008フォルダのパスだろな。

うーん、しかしなんだかちょっとバグっぽい。
「デスクトップ」っていうマルチバイト文字が良くなかったのかなと勝手に想像。

  1. 2012/07/10(火) 18:06:09|
  2. Visual Studio
  3. | トラックバック:0
  4. | コメント:0

ソースコードをさくっとフォーマット(整形)する

Visual StudioのC#には強力なドキュメントフォーマット機能がある。
ソースコードの崩れたインデントを直したり、括弧の位置を揃えたりを自動でやってくれる。

メニュー→[編集]→[詳細]→[ドキュメントのフォーマット]

オレオレコーディングルールで書かれているようなソースコードを引き継がされたときに大活躍する機能です。愚痴です。ごめんなさい。ちなみに私は設定を変更しないデフォルト派です。
スペースとタブが入り乱れているような場合にも有効です。
よく使う場合は、ツールバーにアイコンを置いとくと便利です。

メニュー→[ツール]→[ユーザー設定]
[コマンド]タブ→[分類]→[編集]→[コマンド]→[ドキュメントのフォーマット]→ツールバーの好きなとこにD&D


一応、C++にもフォーマット機能があります。
C#ほど強力ではありませんが、インデントを揃えるくらいはやってくれます。
ただし、上記の[ドキュメントのフォーマット]は何故か使えなかったりするので、さくっとフォーマットするにはキーボードショートカットを使うと良い感じです。

1. Ctrl + A で全選択
2. Ctrl + E を押したあと F を押す

  1. 2012/06/13(水) 20:53:55|
  2. Visual Studio
  3. | トラックバック:0
  4. | コメント:0

VS2008で作ったインストーラを実行するとCrystalReports VS2008 SP1が毎回インストールされる

ちょっとややこしいんだけども…

1. Crystal Reports Basic for Visual Studio 2008 Service Pack 1を開発PCにインストールする
2. Visual Studio 2008でセットアッププロジェクトを作る
3. セットアッププロジェクトの必須コンポーネントに「Crystal Reports Basic for Visual Studio 2008 (x86, x64)」を追加する
4. 必須コンポーネントのインストール場所は「アプリケーションと同じ場所から必須コンポーネントをダウンロードする」にしておく
5. ビルドしてインストーラを作る
6. 作ったインストーラを使って別のPCにインストールする

→Crystal Reportsが毎回インストールされる。既にインストールされていても。
インストールそのものは成功してるっぽいけど、変な動きではある。
既にインストールされているならインストールは不要だ。不要な動きはさせたくない。

%TEMP%へ出力されるインストールのログファイルを見た感じ、どうも「Crystal Reportsをインストールすべきか否か」の判定が間違っている気がする。

必須コンポーネントの動作は、product.xmlに記述されている。
Crystal Reportsだと C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages\CrystalReports10_5 にあるはず。
上記の現象は、多分このproduct.xmlが原因だと思う。

要素 (ブートストラップ)
http://msdn.microsoft.com/ja-jp/library/ms229432.aspx

要素 (ClickOnce ブートストラップ)
http://msdn.microsoft.com/ja-jp/library/ms229510(v=vs.90).aspx

Visual Studio のインストール状態をプログラムで取得する方法。NET または Visual Studio 2005
http://support.microsoft.com/kb/884468/ja

既にインストールされているPCに対してインストールしたときは、CRVSRunTimex86Installed の値が 5 になってたんだよね。
だから、見よう見まねでproduct.xmlに

<BypassIf Property="CRVSRunTimex86Installed" Compare="ValueEqualTo" Value="5" />



<BypassIf Property="CRVSRunTimex64Installed" Compare="ValueEqualTo" Value="5" />

を追加してみたらいい感じになった。
もしかしたら、5だけじゃなくて2も入れないといけないかもだけど……。
ところで0ってどういう状態なんだろ?


いまいち自信が無いのは、調べても情報が無いから……みんなこれ起きてないのか?それとも誰も気にしていないのか?
  1. 2012/05/17(木) 15:03:12|
  2. Visual Studio
  3. | トラックバック:0
  4. | コメント:0

セットアッププロジェクトのカスタム動作DLLを64bitで動かす

Windows Installer関連は日本語資料が少なすぎる。見つかりにくすぎる。
やはりマイナーなのか……しかしそれでも、使っている人はいるぞ!ここに!


Visual Studio 2008 でセットアッププロジェクトを作った。
プロジェクトのTargetPlatformをx64にして、64bit環境向けのインストーラを作ったのだ。
それのカスタム動作にDLLを追加した。

作ったインストーラを実際に64bit環境にインストールしてみると、なにやら例外が発生する。

---------
System.BadImageFormatException
間違ったフォーマットのプログラムを読み込もうとしました。 (HRESULT からの例外: 0x8007000B)
---------

カスタム動作DLLからアンマネージドなDLL(64bit用)を参照しているんだけれども、どうやらそのDLL読込でコケてるらしい。
FileNotFoundExceptionじゃないからファイル自体は無事に見つかってるはず。
アンマネージドDLLも間違いなく64bit用で、特に問題なさそうだ。
じゃあいったい何なのさ?

調べてみると、カスタム動作が動作しているプロセスが32bitで動作してるっぽい。WOW64が動いてる。
32bitで動いてるのに64bit用のDLL読んだら、そりゃエラーになるわな。
(しかしもうちょっとまともなエラーメッセージを出してくれないものか……今に始まったことじゃないけど)
これが原因なのはわかった。カスタム動作のプロセスを64bitで動かせば解決するだろう。
はて、その方法は??

msidbCustomActionType64BitScriptなるビットを立ててみようとしたり、
カスタム動作DLLのプラットフォームをx64にしてみたりしたけど、違った。
いろいろ回り道して、以下のページさんに辿り着いた。
これが正解だった。

【T2-311補足】 msi ファイル (Windows Installer) の 64 bit 向けカスタマイズ
http://blogs.msdn.com/b/tsmatsuz/archive/2009/08/27/windows-installer-msi-orca-database-x64-64bit-customaction.aspx

セットアップ プロジェクトと配置プロジェクトのトラブルシューティング
http://msdn.microsoft.com/ja-jp/library/kz0ke5xt.aspx

↑Visual Studio 2010のページには記載されてあったけど、Visual Studio 2008のページには書いてなかった……ヒドイorz

64-bit Managed Custom Actions with Visual Studio
http://blogs.msdn.com/b/heaths/archive/2006/02/01/64-bit-managed-custom-actions-with-visual-studio.aspx

どうやらmsiの中には、InstallUtilLib.dll というファイルが含まれているらしい。
このファイルを使ってカスタム動作が実行されている?らしいんだけど、この InstallUtilLib.dll はデフォルトだと32bit版(x86)のものがインストーラの中に組み込まれるらしい…この辺は環境によるのかな。
で、32bit版InstallUtilLib.dllが入ってると、カスタム動作のプロセスも32bitとして起動されるらしい。
これを64bitに変えるには、64bit版のInstallUtilLib.dllを入れてやるといい、ということだ。
具体的には、Orcaを使って、作ったmsiファイルのBinaryテーブルを開いて、InstallUtilのレコードのDataに64bit版InstallUtilLib.dllを入れればよい。
詳しくは↑のMSDNを参照。

試しに使ってやってみたところ、64bitのプロセスになった!
例外出ない!期待した通りに動く!やりました!連邦の勝利です!!

  1. 2012/04/26(木) 12:00:45|
  2. Visual Studio
  3. | トラックバック:0
  4. | コメント:0

Visual Studio 2008 で インストーラに .NET Framework 3.5 SP1 を含める

もういっちょ備忘録。

Visual Studio 2008 でセットアッププロジェクトを作って、.NET Framework 3.5 SP1 をネット経由じゃなくてローカルからインストールできるようにする方法。
普通にやるとビルドエラーが出るんで、これを回避するために、ビルド環境をいじってブートストラップをうんぬんかんぬんする必要がある。

リリースノートの 「2.3.1.1 Samesite for .NET Framework 3.5 SP1 ブートストラップ パッケージを有効にする」を参照すべし。

Visual Studio 2008 Service Pack 1 リリースノート
http://download.microsoft.com/download/1/b/e/1be78474-c7f8-427a-8c6c-330e1c5db7d5/VS2008SP1Readme.htm

この作業を自動でやってくれるバッチとか出してくれるとありがたかったんだけどなぁ。
  1. 2012/04/06(金) 21:30:35|
  2. Visual Studio
  3. | トラックバック:0
  4. | コメント:0

Visual Studio 2008 用 Crystal Reports の Service Pack 1

Visual Studio 2008 で使う Crystal Reports の Service Pack についてのURL。
探しても探してもなかなか見つからないんだよね……前探したときにメモっといて良かった。
備忘録も兼ねて、記事にしておこう。

Crystal Reports Basic for Visual Studio 2008 Service Pack 1
http://social.msdn.microsoft.com/Forums/ja/vsgeneralja/thread/b47a59a3-9bb5-4957-b38a-aa4083f63d5e

ダウンロードURL
https://websmp130.sap-ag.de/sap(bD1qYSZjPTAwMQ==)/bc/bsp/spn/bobj_download/main.htm

「Crystal Reports Basic for VS 2008 - Service Pack 1」を実行してから、
ランゲージパックである「CR Basic 2008 - SP 1 - Language Pack for Japanese」を実行すればいいんだっけね?
  1. 2012/04/06(金) 21:18:43|
  2. Visual Studio
  3. | トラックバック:0
  4. | コメント:0
次のページ

最新記事

カテゴリ

C#.NET (20)
Visual Studio (14)
ツール (13)
Windows (14)
Linux (3)
その他 (3)

月別アーカイブ

プロフィール

シカハチ

Author:シカハチ
へぼプログラマです。

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。