ラベル Visual Studio の投稿を表示しています。 すべての投稿を表示
ラベル Visual Studio の投稿を表示しています。 すべての投稿を表示

2022年3月14日月曜日

SSDT(SQL Server Data Tools) スキーマの比較でエラー 「比較が制限されています」

SSDTのスキーマ比較でトラブル。エラーの詳細は

 「データベースに対する View Definition アクセス許可がないため、リバース エンジニアリング操作を続行できません。」


解決方法は

データベースの「セキュリティ」→「ログイン」で対象のアカウントで右クリック→「プロパティ」→「セキュリティ保護可能なリソース」で「定義の表示」に許可をチェック



(参考)



2021年4月5日月曜日

Visual Studio 2017 2019 ASP.NET MVC で AREA を追加する方法

プロジェクトを右クリック→「追加」→「新規スキャフォールディングアイテム」


「共通」→「MVC」→「区分」

以上、メモまで。

2021年3月13日土曜日

【IIS】Web Deploy のおさらい

公式の解説は以下などを参考


0. 手順

1. IISのインストール

2. Microsoft Web Deploy のインストール

3.IIS マネージャーユーザーの追加

4. 管理サービスの委任

5. 管理サービスの起動

6. ユーザーの設定を変更

7. ファイアウォールの設定

8. その他セキュリティの設定

9. 出力ディレクトリのパーミッションの設定

10. Web配置による発行の有効化

11. Visual Studio から発行



1. IISのインストール

「役割と機能の追加」からIISをインストール




2. Microsoft Web Deploy のインストール

以下ページからMicrosoft Web Deploy 3.6 をダウンロード

https://www.microsoft.com/ja-jp/download/details.aspx?id=43717




「完全」を選択してインストール



3.IIS マネージャーユーザーの追加

IIS マネージャーを開きIISマネージャーユーザーを追加





4. 管理サービスの委任

WebDeployをインストールした時点で適切な設定になっていると思いますが確認

「WDeployConfigWriter」と「WDeployAdmin」というユーザーが自動で作成されている



5. 管理サービスの起動


ポート変更などを行う場合はここで行う



6. ユーザーの設定を変更

先ほど自動生成されたユーザー「WDeployConfigWriter」と「WDeployAdmin」の設定を変更する

「コンピューターの管理」ツールを起動しユーザーの一覧を表示する


両ユーザーについて、右クリック→プロパティでプロパティ画面を開き「パスワードを無期限にする」にチェックを入れる

(この設定は絶対に必要という訳ではありませんが、パスワードの期限切れである日突然デプロイが出来なくなりハマる事があります)


また、ここで両ユーザーのパスワードを変更した場合は、IISマネージャーの「管理サービスの委任」から、両ユーザーが割り当てられている規則の「編集」画面を開き、「資格情報の指定」からパスワードを設定します。



7. ファイアウォールの設定

Windows Defender ファイアウォールの設定画面を開き、「受信の規則」→「新しい規則」からデプロイのポート(デフォルトだと8172)を追加する








8. その他セキュリティの設定

ホスト先のサーバーの設定によりますが接続ポートの許可設定などを行います

例えばAWS EC2 であればセキュリティグループの「インバウンドルール」にポートの許可設定を追加します



9. 出力ディレクトリのパーミッションの設定

IISマネージャー、あるいはエクスプローラーから当該ディレクトリの「アクセス許可の編集」を行います


「LOCAL SERVICE」 にフルコントロール権限を与えます



10. Web配置による発行の有効化

IISマネージャーで設定したいサイト上で右クリック→展開→Web配置による発行の有効化を選択します

対象が配下のWebアプリケーションや仮想ディレクトリであっても親サイト上で行います



「発行アクセス許可を付与するユーザーを選択します」のところで先ほど作成したIISユーザーである「webdeploy」を設定します


「設定」を行うと指定した場所に設定ファイル(拡張子 .PublishSettings)が作成されます


11. Visual Studio から発行

Visual Studio のソリューションエクスプローラーで発行したいWebプロジェクトを右クリック→発行を選択します



先ほど出力した設定ファイルを読み込ませます


「編集」をクリックしてパスワードを設定します

サイト配下のアプリケーションや仮想ディレクトリに発行する場合は「サイト名」の箇所にスラッシュ区切りで当該ディレクトリを指定します

接続の検証を押下し、成功するとグリーンのチェックマークが表示されます





WebDeploy を解説してくれているサイトは結構あるのですが、ユーザーパスワードの期限やディレクトリのパーミッション権限などに言及されているのが少なく、自分がちょくちょくハマってしまうのでまとめてみました。

以上です。



2020年6月9日火曜日

【Visual Studio 2019】Deployエラー : 証明書を許可してください

以前までは証明書のエラーが発生した際には以下のようなポップアップアラートが表示され、「承諾」を選択していればDeployできました。


アップデートか何かで設定が変わってしまったのかわかりませんが、いつからか以下のエラーメッセージが表示されるだけで証明書の許可設定ができなくなってしまいました。
エラー Web deployment task failed. (指定されたプロセス ("xxx.xxx.xxx.xxx")を使用して、リモート コンピューター ("Web Management Service") に接続しましたが、サーバーの証明書を検証できませんでした。
このサーバーを信頼する場合は、再度接続し、信頼されていない証明書を許可してください。
詳細情報の参照先:
http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_CERTIFICATE_VALIDATION_FAILED)
解決する手順は以下の通りです。 
「Properties/PublishProfiles」にある「.pubxml」ファイルをエディタで開く
<PropertyGroup>要素内に<AllowUntrustedCertificate>True</AllowUntrustedCertificate>
を追加する。
 
以上メモまで。

(参考)

2019年7月10日水曜日

【C#】varで宣言された変数の定義へ移動【Visual Studio】

varにマウスポインタをフォーカスしてF12

var variable = Hoge();

のようなコードでvariableにフォーカスしてF12を押してもここが変数宣言をしている場所なのでクラスの定義に飛んでくれません。
varにフォーカスしてF12を押せば飛んでくれます。

たぶん常識中の常識なんでしょうが初めて知りました。。。

以上メモまで。

2018年8月31日金曜日

Microsoft Action Pack のダウンロードページが迷子

私がいつも忘れてしまうだけですが、↓あたりが参考になるかと。
パートナー メンバーシップ センターでの個人アカウントのホーム


https://support.microsoft.com/ja-jp/help/3011409



サイト構成がわかりにくかったり、リンク切れがあったり、もう少しなんとかして欲しいと思うのは私だけでしょうか…。



2018年7月23日月曜日

PDFSharp MigraDoc を使ってC#でPDF生成

(正確を期するよう努力いたしておりますが、保証するものではありません。予めご了承願います。)

帳票のような物をPDF出力する必要があり、iTextSharpを久しぶりに利用しようとしたところライセンスがさらに厳しくなっており、代わりとしてPDFSharp(MITライセンス)を利用することにしました。


こちらのページから概要や特徴、ソースのダウンロードページやwiki、forumへアクセスすることができます。

概要

1.PDFSharp と MigraDoc

PDFSharp
- PDFファイルを操作するための.NETライブラリ。テキストはもちろん線や画像の描画もできる。テーブル組や自動改ページなどはない。
MigraDoc
- PDFSharpを使用してよりドキュメント作成に便利な高機能を提供するライブラリ。テーブル組や自動改ページに対応。
Mix
- MigraDocはPDFSharpで構築されているので、両者を混合して利用する事もできる。
MigraDoc Sample: Mix MigraDoc and PDFsharp - PDFsharp and MigraDoc Wiki

2.Github


ソースコードはこちらから入手できます。
samples が便利なので詰まった時は参考にされると解決するかもしれません。

準備

PDFSharp,MigraDocどちらもVisual Studio の Nuget Package でインストールできます。
上図の通り、いくつか種類があってどれをインストールすれば良いか悩みます。
それぞれの使い分けは以下の通りです。
PDF Core Build 未完成。完成すればプラットフォームに依存せずMacやLinuxでも動作する予定。
GDI+ Build .NET 2.0、C# 2 で作成。WinForms、 Web アプリケーションで動作。( WPF でも動作する)
WPF Build .NET 3.5、C# 2 で作成。その名の通り WPF アプリケーションで動作。
Hybrid Build GDI+ WPF をひとつのプロジェクトで共存。ただし、動作が重くなるなど問題があり実際のアプリケーションで利用するのは非推奨。
Supported Platforms and Technologies, Available Builds - PDFsharp and MigraDoc Wiki

サンプル

ASP.NET MVC で日本語フォントを含むPDFを出力するサンプルを作成します。
MigraDoc GDI+ を Nuget でインストールします。

日本語フォントを利用するためにはIFontResolverを継承したクラスを作成し、それをプログラムに登録する必要があります。
以下のサイトを参考にさせていただきました。

生成結果のPDFは以下の通りです。サンプルデータを作成するのにWikipediaの内容を一部利用しております。(https://ja.wikipedia.org/wiki/FIFAワールドカップ)
色付きの部分は追記した補足説明(英文字はコード内で自分が命名した変数など)で、プログラムで生成したものではありません。
(ヘッダやパラグラフにわかりやすくなるように枠線をつけています。)

Documentクラスに表紙や目次、第何章などのSection(章)を追加し、その章の中にParagraph(段落)やTable(表組み)などを追加していって文書を作成していきます。
このサンプルを作成するのに記述したコードは以下の通りです。

using MigraDoc.DocumentObjectModel;
using MigraDoc.DocumentObjectModel.Tables;
using MigraDoc.Rendering;
using System.IO;
using System.Web.Mvc;

namespace MigraDocSample.Controllers
{
    public class HomeController : Controller
    {
        public ActionResult Index()
        {
            // フォントリゾルバーのグローバル登録
            PdfSharp.Fonts.GlobalFontSettings.FontResolver = new JapaneseFontResolver();

            //ドキュメント作成
            Document document = new Document();
            document.Info.Title = "Hello, MigraDoc";
            document.Info.Subject = "This is MigraDoc Sample.";
            document.Info.Author = "Author";
            document.DefaultPageSetup.LeftMargin = Unit.FromCentimeter(2);
            document.DefaultPageSetup.RightMargin = Unit.FromCentimeter(2);
            document.DefaultPageSetup.TopMargin = Unit.FromCentimeter(10);
            document.DefaultPageSetup.BottomMargin = Unit.FromCentimeter(5.5);
            
            //表紙セクション作成
            Section sectionCover = document.AddSection(); //Sectionを追加

            Font fontCoverTitle = new Font("yumin",30); //登録したフォント
            fontCoverTitle.Underline = Underline.Single;
            Paragraph paragraphCover = sectionCover.AddParagraph(); //Paragraphを追加
            paragraphCover.AddFormattedText("表紙タイトル",fontCoverTitle);
            paragraphCover.Format.SpaceBefore = "3cm";
            paragraphCover.Format.SpaceAfter = "3cm";
            paragraphCover.Format.Alignment = ParagraphAlignment.Center;

            Font fontDate = new Font("yumin", 8);
            Paragraph paragraphDate = sectionCover.AddParagraph();
            paragraphDate = sectionCover.AddParagraph();
            paragraphDate.AddFormattedText("Rendering date: ", fontDate);
            paragraphDate.AddDateField();
            paragraphDate.Format.Alignment = ParagraphAlignment.Right;

            //メインセクション作成
            Section sectionMain = document.AddSection();
            sectionMain.PageSetup.HeaderDistance = Unit.FromCentimeter(2);
            sectionMain.PageSetup.FooterDistance = Unit.FromCentimeter(1.5);
            sectionMain.PageSetup.StartingNumber = 1;

            //ヘッダテーブル作成
            Table tableHeader = new Table();
            tableHeader.Borders.Visible = true;
            tableHeader.TopPadding = 0;
            tableHeader.BottomPadding = 5;

            //3列作成
            var columnHeader = tableHeader.AddColumn(Unit.FromCentimeter(6));
            columnHeader.Format.Alignment = ParagraphAlignment.Left;
            columnHeader = tableHeader.AddColumn(Unit.FromCentimeter(3));
            columnHeader.Format.Alignment = ParagraphAlignment.Right;
            columnHeader = tableHeader.AddColumn(Unit.FromCentimeter(8));
            columnHeader.Format.Alignment = ParagraphAlignment.Left;

            var fontHeaderTitle = new Font("yumin", 18);
            fontHeaderTitle.Underline = Underline.Single;
            var fontHeader = new Font("yumin", 10);
            var para = new Paragraph();

            //1行目
            para.AddFormattedText("FIFAワールドカップ", fontHeaderTitle);
            var row = tableHeader.AddRow();
            row.Height = 30;
            row.Cells[0].Add(para);
            row.Cells[0].MergeRight = 2;
            row.Cells[0].Format.Alignment = ParagraphAlignment.Center;
            //2行目
            row = tableHeader.AddRow();
            para = row.Cells[1].AddParagraph();
            para.AddFormattedText("開始年", fontHeader);
            para = row.Cells[2].AddParagraph();
            para.AddFormattedText("1930年", fontHeader);
            //3行目
            row = tableHeader.AddRow();
            para = row.Cells[1].AddParagraph();
            para.AddFormattedText("主催", fontHeader);
            para = row.Cells[2].AddParagraph();
            para.AddFormattedText("FIFA", fontHeader);
            //4行目
            row = tableHeader.AddRow();
            para = row.Cells[1].AddParagraph();
            para.AddFormattedText("地域", fontHeader);
            para = row.Cells[2].AddParagraph();
            para.AddFormattedText("世界", fontHeader);
            //5行目
            row = tableHeader.AddRow();
            para = row.Cells[1].AddParagraph();
            para.AddFormattedText("参加チーム数", fontHeader);
            para = row.Cells[2].AddParagraph();
            para.AddFormattedText("32(本大会)", fontHeader);
            //6行目
            row = tableHeader.AddRow();
            para = row.Cells[1].AddParagraph();
            para.AddFormattedText("出典", fontHeader);
            para = row.Cells[2].AddParagraph();
            para.AddFormattedText("https://ja.wikipedia.org/wiki/FIFAワールドカップ", fontHeader);

            sectionMain.Headers.Primary.Add(tableHeader); //sectionにヘッダーを追加

            //本文作成
            var fontMainTitle = new Font("yumin", 14);
            fontMainTitle.Underline = Underline.Dash;
            var fontMain = new Font("yumin", 10);
            //1段落目(英文は英文のルールに従って改行される)
            var paraMain = document.LastSection.AddParagraph();
            paraMain.Format.Borders.Visible = true;
            paraMain.Format.RightIndent = Unit.FromCentimeter(5);
            paraMain.AddFormattedText("English\n",fontMainTitle);
            paraMain.AddLineBreak();
            paraMain.Format.Font = fontMain;
            paraMain.AddText(Sample.English);
            paraMain.AddLineBreak();
            //2段落目(日本語文は改行されずに)
            paraMain = document.LastSection.AddParagraph();
            paraMain.Format.Borders.Visible = true;
            paraMain.Format.RightIndent = Unit.FromCentimeter(5);
            paraMain.AddFormattedText("日本語コンテンツ\n", fontMainTitle);
            paraMain.AddLineBreak();
            paraMain.Format.Font = fontMain.Clone();
            paraMain.AddText(Sample.Japanese);
            paraMain.AddLineBreak();
            //3段落目
            paraMain = document.LastSection.AddParagraph();
            paraMain.Format.Borders.Visible = true;
            paraMain.Format.RightIndent = Unit.FromCentimeter(5);
            paraMain.AddFormattedText("日本語コンテンツ(1文字ずつ)\n", fontMainTitle);
            paraMain.AddLineBreak();
            paraMain.Format.Font = fontMain.Clone();
            foreach (char c in Sample.Japanese)
            {
                paraMain.AddFormattedText(c.ToString(), fontMain);
            }
            paraMain.AddLineBreak();

            document.LastSection.AddPageBreak(); //改ページ

            //テーブル表記
            paraMain = document.LastSection.AddParagraph();
            paraMain.AddFormattedText("歴代大会結果", fontMainTitle);
            Table tableResult = new Table();
            tableResult.Borders.Visible = true;
            tableResult.Rows.Height = 25;
            //7列作成
            var columnResult = tableResult.AddColumn(Unit.FromCentimeter(0.8));
            columnResult = tableResult.AddColumn(Unit.FromCentimeter(1.8));
            columnResult = tableResult.AddColumn(Unit.FromCentimeter(3.1));
            columnResult = tableResult.AddColumn(Unit.FromCentimeter(0.5));
            columnResult = tableResult.AddColumn(Unit.FromCentimeter(3.1));
            columnResult = tableResult.AddColumn(Unit.FromCentimeter(3.8));
            columnResult = tableResult.AddColumn(Unit.FromCentimeter(3.1));
            //ヘッダ1行目
            row = tableResult.AddRow();
            para = row.Cells[0].AddParagraph(); para.AddFormattedText("回", fontMain);
            para = row.Cells[1].AddParagraph(); para.AddFormattedText("開催年", fontMain);
            para = row.Cells[2].AddParagraph(); para.AddFormattedText("開催国", fontMain);
            para = row.Cells[3].AddParagraph();
            para = row.Cells[4].AddParagraph(); para.AddFormattedText("決勝戦", fontMain);
            row.Cells[4].MergeRight = 2;
            row.Cells[0].MergeDown = 1;
            row.Cells[1].MergeDown = 1;
            row.Cells[2].MergeDown = 1;
            row.Cells[3].MergeDown = 1;
            //ヘッダ2行目
            row = tableResult.AddRow();
            para = row.Cells[4].AddParagraph(); para.AddFormattedText("優勝", fontMain);
            para = row.Cells[5].AddParagraph(); para.AddFormattedText("結果", fontMain);
            para = row.Cells[6].AddParagraph(); para.AddFormattedText("準優勝", fontMain);
            foreach (var result in Sample.Results)
            {
                row = tableResult.AddRow();
                if (result.Organized)
                {
                    para = row.Cells[0].AddParagraph(); para.AddFormattedText(result.Number.ToString(), fontMain);
                    para = row.Cells[1].AddParagraph(); para.AddFormattedText(result.Year.ToString() + "年", fontMain);
                    para = row.Cells[2].AddParagraph(); para.AddFormattedText(result.Host, fontMain);
                    para = row.Cells[3].AddParagraph();
                    para = row.Cells[4].AddParagraph(); para.AddFormattedText(result.Champion, fontMain);
                    para = row.Cells[5].AddParagraph(); para.AddFormattedText(result.FinalScore, fontMain);
                    para = row.Cells[6].AddParagraph(); para.AddFormattedText(result.RunnersUp, fontMain);
                }
                else
                {
                    para = row.Cells[1].AddParagraph(); para.AddFormattedText(result.Year.ToString() + "年", fontMain);
                    para = row.Cells[4].AddParagraph(); para.AddFormattedText(result.NotOrganizedReason, fontMain);
                    row.Cells[4].MergeRight = 2;
                    row.Cells[4].Format.Alignment = ParagraphAlignment.Center;
                }
            }
            document.LastSection.Add(tableResult);

            //フッター作成
            var paraFooter = new Paragraph();
            paraFooter.AddPageField();
            paraFooter.AddText(" of ");
            paraFooter.AddNumPagesField();
            paraFooter.AddText(" Page");
            paraFooter.Format.Alignment = ParagraphAlignment.Center;
            sectionMain.Footers.Primary.Add(paraFooter);

            //レンダリングしてPDFを出力
            PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer(true);
            pdfRenderer.Document = document;
            pdfRenderer.RenderDocument();
            using (MemoryStream ms = new MemoryStream())
            {
                pdfRenderer.PdfDocument.Save(ms);
                return File(ms.ToArray(), "application/pdf", "sample.pdf");
            }
        }
    }
}
using PdfSharp.Fonts;
using System;
using System.IO;
using System.Reflection;

namespace MigraDocSample
{
    // 日本語フォントのためのフォントリゾルバー
    public class JapaneseFontResolver : IFontResolver
    {
        private static readonly string YUMIN_TTF =
            "MigraDocSample.fonts.YUMIN.TTF";

        public byte[] GetFont(string faceName)
        {
            switch (faceName)
            {
                case "YUMIN":
                    return LoadFontData(YUMIN_TTF);
            }
            return null;
        }

        public FontResolverInfo ResolveTypeface(
                    string familyName, bool isBold, bool isItalic)
        {
            var fontName = familyName.ToLower();

            switch (fontName)
            {
                case "yumin":
                    return new FontResolverInfo("YUMIN");
            }

            // デフォルトのフォント
            return PlatformFontResolver.ResolveTypeface("Arial", isBold, isItalic);
        }

        // 埋め込みリソースからフォントファイルを読み込む
        private byte[] LoadFontData(string resourceName)
        {
            var assembly = Assembly.GetExecutingAssembly();
            string[] names = assembly.GetManifestResourceNames();
            using (Stream stream = assembly.GetManifestResourceStream(resourceName))
            {
                if (stream == null)
                    throw new ArgumentException("No resource with name " + resourceName);

                int count = (int)stream.Length;
                byte[] data = new byte[count];
                stream.Read(data, 0, count);
                return data;
            }
        }
    }
}
Sample.XXXはサンプル用のデータです。
フォントリゾルバーに登録するファイル名は大文字小文字を区別しますので間違えると機能しません。
また、フォントリソースを忘れずに「埋め込みリソース」にする事も注意が必要です。

英文はパラグラフ内で自動的に改行されるのですが、日本語が改行されないのは上手く解決できませんでした。

この他にもPDFSharpを利用してHTMLからPDFを出力するHTML Rendererというものもあります。


以上メモまで。


2018年4月16日月曜日

ASP.NET MVC デフォルトの T4 Scafolding Template の場所 【Visual Studio 2017】



こちらを参考にカスタムのT4テンプレートの作成を試みているのですが、Visual Studio 2017ではここに書かれてある場所と違うようです。

たぶんここ(かな?)

C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web\Mvc\Scaffolding\Templates



2016年8月27日土曜日

hyper-vの有効化について

Visual Studio, Xamarin を試していてVisual Studio Emulator for Androidでデバッグを行おうとしたのですが、
私の環境ではBIOS周りをイジったりしたもののなかなかうまくいきませんでした。

ある知り合いの方に尋ねた所、hypervisorlaunchtypeの設定を変更すれば良いとご指摘頂き解決しました。

まず確認方法ですが、コマンドプロンプトを右クリック→「管理者として実行」で起動します。

「bcdedit」というコマンドを実行すると現在の設定が表示され、その中に「hypervisorlaunchtype」という項目があります。
これが私の環境では「off」になっていたので下記コマンドで変更するとhyper-vが実行できるようになりました。

bcdedit /set hypervisorlaunchtype auto


コマンドの実行は自己責任でお願い致します。
以上メモまで。

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」な記事が多くて
ちょっとハマってしまいました。

以上メモまで。

2015年7月22日水曜日

アクションパックのVisual Studioはプロダクトキー不要、ソフトウェアからサインインして認証するらしい

先日Visual Studio 2015 RTMがリリースされました。
会社でアクションパックのライセンスを持っているのでダウンロードしようとしたのですが、
どこから落とすのか皆目わからずハマってしまいました。

MSDNサブスクリプション
https://msdn.microsoft.com/ja-jp/subscriptions

ここからダウンロードするようになっているみたいで
(アクションパックのソフトウェアダウンロード画面にあれば良いのに・・・)
確かに該当するリンクは発見でき、ISOファイルのダウンロードもできました。
そして、いざプロダクトキーを取得しようとしたところ・・・。



何かこちらの設定が間違っているのではないかとメールを確認したり、ググったり、ビングったり。
結局わからなかったので、msdnのカスタマーセンターのお問い合わせフォームから質問を
送信したところエラー。
チャットがつながったのですが、アクションパックのカスタマーセンターへ誘導され、
そちらに電話してようやく表題の回答をもらって解決いたしました。

「お客様のサブスクリプションご契約内容には、この製品のプロダクトキーは含まれておりません。」
なんて表示されたら焦ってしまいますよね。
そもそも画面構成がわかりにくかったり、挙動が不安定だったり、なんとかして欲しいなぁとは思うのですが・・・。
こんな事で困っているのはワタシだけなのでしょうか?

2014年4月25日金曜日

Google日本語とVisual Studioで不具合

Visual Studio 2012でWPFのプロジェクトをいじっていた時に
プロパティウィンドウからコントロールの名前(コントロールを貼り付けた直後は
<名前なし>となっている)を変更しようとしたところ、入力できないというトラブルに見舞われました。

どうやらGoogle日本語とVisual Studioで起こる不具合のようです。
他にも「プルダウンが動作しない」などのトラブルが報告されていました。

VSいじる時は大人しくMS-IMEにしときましょうか。

以上メモまで。

2014年4月9日水曜日

【Visual Studio 2012】Unit Test Generator拡張機能 "controller must have testable element property setup"

Unit Test Generator拡張機能をインストールし、早速実行してみたところ

『controller must have testable element property setup』

というエラーメッセージが出てしまいました。

Unit Test Generator で Test Method を作成するには
1.public Class であること
2.public Method であること
が条件です。

VSでクラスを作成するとデフォルトでアクセス修飾子の無いクラス(internal)になるので
エラーとなってしまいました。

以上メモまで。

(参考)
アクセス修飾子 (C# リファレンス)
http://msdn.microsoft.com/ja-jp/library/wxh6fsc7.aspx

2013年9月7日土曜日

【Visual Studio】 Git Source Control Provider で Webサイトプロジェクトにリポジトリ作成

Visual Studio で新規にWebアプリケーションを作成する時に
「新しいプロジェクト」と「新しいWebサイト」の2種類があります。

その詳細な説明は他に譲るとして
【msdn】
Visual Studio での Web アプリケーション プロジェクトと Web サイト プロジェクト
http://msdn.microsoft.com/ja-jp/library/dd547590.aspx 

【どっとねっとふぁん】様
WebアプリケーションプロジェクトとWebサイトプロジェクト
http://blogonos.wordpress.com/2008/01/21/


ファイル・ディレクトリ構成は以下のとおりです(デフォルト)。

「新しいプロジェクト」の場合は
 ソリューションファイル
 C:\Users\<ユーザ名>\Documents\Visual Studio 2012\Projects\hoge\hoge.sln
 コーディングしたファイル
 C:\Users\<ユーザ名>\Documents\Visual Studio 2012\Projects\hoge\hoge

「新しいWebサイト」の場合は
 ソリューションファイルは
 C:\Users\<ユーザ名>\Documents\Visual Studio 2012\Projects\hoge\hoge.sln
 コーディングしたファイルは
 C:\Users\<ユーザ名>\Documents\Visual Studio 2012\WebSites\hoge


Webサイトプロジェクトの場合、ソリューションファイルと本体のファイルとで
ディレクトリ構成が異なってしまうのですが、Git Source Control Provider を使って
VSからリポジトリを作成しようとすると、ソリューションファイルのあるディレクトリに
「.git」ディレクトリが作成され、本体のファイルをgitで管理できません。

Git Bash や Tortoise Git など Visual Studio 以外から先にリポジトリを作成しておけば
Visual Studio 上で Git Source Control Provider で管理できるようになります。

以上メモまで。
(Gitを使い始めたばかりなので認識に誤りがあればご指摘頂けますと幸いです)

2013年4月7日日曜日

Visual Studio 2012 の 「ASP.NET 構成」ってどこ?

前まではソリューションエクスプローラーの上にあったのですが、Visual Studio 2012からは
メニューバーの「プロジェクト」の下の方にあります。

結構探したので、メモ。


2013年3月29日金曜日

Windows 2008 Server に VIsual Studio 2012 がインストールできない

R2ならインストールできるみたいですが・・・。
詳細は以下のリンクです。
(なぜかFireFoxでページがRuntime Errorになってしまうので、
キャプチャ画像を掲載。引用方法に問題あればご指摘頂けますと幸いです。)

【Microsoft】開発ツール対応OS一覧
http://www.microsoft.com/ja-jp/dev/support/tools.aspx

2013年2月3日日曜日

Visual Studio 2012 「コントローラーに移動」がない

ASP.NET MVC 開発でビューとコントローラーを移動する便利な機能が
Visual Studio にあります。
(「ビューに移動」「コントローラーに移動」 Go to View / Go to Controller (Ctrl-M Ctrl-G))

が、Visual Studio 2012 に「コントローラーに移動」が見当たりません(泣)




同様の症状の方も居るみたいですが、バグなのでしょうか・・・。
http://forums.asp.net/t/1840247.aspx/
http://connect.microsoft.com/VisualStudio/feedback/details/775830/go-to-controller-option-missing-from-the-right-click-context-menu

ちなみに、ショートカットキー(Ctrl-M, Ctrl-G)を打つと
「現在使用できないコマンドにバインドされています」
と出てエラーになります。

2011年11月29日火曜日

Visual Studio 2010 保存オプションの詳細設定が表示されない

VS2010で開発をしていてソースファイルの文字エンコーディングを変更したいと思い、
調べていたら「保存オプションの詳細設定」から変更するという情報を得ました。



・・・ない。


どうも何らかの条件で表示されないようです。

表示させるには以下の通り

「表示」→「ツールバー」→「カスタマイズ」を選択
「メニューバー」の部分から「ファイル」を選択し、
「コマンドの追加」ボタンを押下します。
「カテゴリ」の「ファイル」の中に「保存オプションの詳細設定」があるので
それを選択して「OK」

晴れて「保存オプションの詳細設定」が追加されました。

(何かファイル名が出ちゃってるけどご愛嬌^^;)