2015年8月26日水曜日

【Visual Studio】自動生成したコードをプロジェクトに追加する時にエラー

T4Templateなどでファイルを自動生成し、プロジェクトに読み込ませるために
以下のようなコードを実行いたします。

using Microsoft.Build.Evaluation;

Project project = new Project(projectFileName);
if (!project.Items.Any(x => x.ItemType == "Compile" && x.UnevaluatedInclude == generatedFileName))
{
    project.AddItem("Compile", generatedFileName);
    project.Save();
}

ところが、これを同一プロジェクトに対し複数回実行するとエラーとなり
以下のようなメッセージが出ます。


等価なプロジェクト (グローバル プロパティとツール バージョンが同じプロジェクト) がプロジェクト コレクションのパスxxxに既に存在します。 等価なプロジェクトをこのプロジェクト コレクションに読み込むには、最初にこのプロジェクトをアンロードしてください。


ということでアンロードします。

ProjectCollection.GlobalProjectCollection.UnloadProject(project);


(参考)
http://codeyourself.net/microsoft-build-evaluation-project-loading-oddities/

以上メモまで。

2015年8月23日日曜日

Visual Studio 2015 で開発したAndroidアプリを実機でデバッグ

まず実機側で「開発者向けオプション」の「USBデバッグ」にチェックを入れます。
「開発者向けオプション」は実機の「設定」からたどれます。
(表示されない場合は「端末情報」の「ビルド番号」を7回タップすると表示されます)
(あと、「セキュリティ」の「提供元不明のアプリ」もチェックした方が良いかもしれません)

Google USB DriverをPCにインストールします。
(自分の場合Android SDK Managerで確認したら既にインストールされていました。)

実機をPCにUSB接続します。
「コンピュータ」右クリック「管理」「デバイスマネージャ」で接続した実機を探します。
実機を右クリックで「ドライバーソフトウェアの更新」でインストールした
「Google USB Driver」を選択します。
実機側で「このコンピュータからのデバッグを許可しますか?」というような
表示が出るので許可します。
これでVisual Studioのデバッグのプルダウンにデバイスが表示されれば成功です。

(参考)
http://brianlagunas.com/debugging-xamarin-android-apps-in-visual-studio-with-a-nexus-7-device/
https://developer.xamarin.com/guides/android/getting_started/installation/set_up_device_for_development/


ただし、自分の場合はこれでは成功しませんでした。
Visual Studioの「ツール」「Android」「Android ADB Command Prompt」で
コマンドプロンプトを起動し「adb devices」とコマンドを実行したところ。
「unauthorized」と表示され認証されていないことが確認されました。
実機側で「USBデバッグ許可の取り消し」
PC側でADBサーバの再起動を行うことで無事認証することができました。
このあたりは以下サイトが参考になり助かりました。

(参考)
https://msdn.microsoft.com/en-us/library/dn757059.aspx
http://biz-crew.com/archives/1245


以上で無事VIsual Studioから実機でデバッグできるようになりました。
エミュレータでデバッグするよりは大分早くなったと思います。


(おまけ)
実機のデバッグ状況をPC上でキャプチャしたかったのですが、
NTT docomoのAndroidユーザの方は「mobizen」というアプリが便利です。
実機側にアプリをインストールし、ID・パスワードを設定。
PCのブラウザからhttps://mobizen.jp/にアクセスして認証すれば
簡単にPCのブラウザから遠隔操作できるようになります。


上記諸事項を実施される場合は自己責任でお願いします。
以上メモまで。

2015年8月17日月曜日

Visual Studio 2015 Tools for Unity が見つからない

[Asset]→[Import Package]→[Custom Package]


C:\Program Files (x86)\Microsoft Visual Studio Tools for Unity\2015\Visual Studio 2015 Tools.unitypackage

を選択します。


Unity4の頃の情報なのか「インストーラー起動したらOK」な記事が多くて
ちょっとハマってしまいました。

以上メモまで。

Windows8 勝手にスリープから解除されてしまう問題

スリープが勝手に解除されてしまう問題の原因は
マウス・キーボード・システムメンテナンス等に加えて
NICなどのデバイスの場合もあります。

上記に関する解決策の情報は結構ありますが、
原因特定の方法に言及されてない事が多く
場当たり的な解決になってしまいます。

こちらに原因特定の方法が掲載されていました。

「powercfg /lastwake」コマンドを実行することで、
スリープ解除する原因となったデバイスが判明します。

非常に助かりました、マイナビさんありがとうございます。
というメモ。