2019年3月19日火曜日

chrome web browserから .NET ClickOnceを起動したい

chrome web browserから .NET ClickOnceを起動したい

現状 .NET ClickOnceは IE(Internet Exploer)からurl .applicationより
サーバから.NET プログラムをDL後インストールを行い、実行される。

chrome では 上記 url .applicationがリンクされていないので
ClickOnceが起動しない。

Chromeでも.Applicationのurlで起動出来る拡張機能がある。

 https://chrome.google.com/webstore/detail/clickonce-for-google-chro/kekahkplibinaibelipdcikofmedafmb

探せば 他でもある
https://chrome.google.com/webstore/detail/windows-remix-clickonce-h/dgpgholdldjjbcmpeckiephjigdpikan


2019年3月15日金曜日

コーディング用日本語フォント Utatane

コーディング用日本語フォント Utatane

今までコーディング用日本語フォントを ”ゆたぽん” を利用していましたが
Utataneの方が英語表記が好みだったので、乗換えました。

ゆたぽんの手書き感じがゆるくて好きだったのですが
英語部分がUtataneの方が見やすかったです。 

2019年3月9日土曜日

ASP.NET MVC:全ての例外をログに出力する

ASP.NET MVC:全ての例外をログに出力する

エラー発生時エラー情報を画面に表示していたが
エンドユーザーからPCが壊れたと勘違いするので表示を辞めた。
今まではglobal.asaxのクラスApplicarion_Error内に
エラー内容をログとして出力していたがcontoller内のエラーはApplication_Errorを

通過しないことが分かった。

方法としてfilterにhandleerrorattributeと同様にログ出力クラスを定義する。
上記クラスでログ出力を行う。

https://paulthecyclist.com/2013/05/17/log-all-mvc-errors/

上記リンク先を参照

自分はlog4net ではなくNLogを使用しました。


App_Start/FilterConfig.cs

 public class FilterConfig {
        private static ILogger logger = LogManager.GetLogger("logfile");

        public static void RegisterGlobalFilters(GlobalFilterCollection filters, ILogger logger) {
            filters.Add(new HandleErrorAttribute());
            filters.Add(new ExceptionLoggingFilter(logger));  // add
        }
    }

ExceptionLoggingFilter.cs

    public class ExceptionLoggingFilter : IExceptionFilter {

        private static ILogger _logger = LogManager.GetLogger("logfile");

        public ExceptionLoggingFilter(ILogger logger) {
            _logger = logger;
        }

        public virtual void OnException(ExceptionContext filterContext) {
            _logger.Error("contller : " + filterContext.Controller);
            _logger.Error(filterContext.Exception);
        }

        public interface IExceptionFilter {
            void OnException(ExceptionContext filterContext);
        }
    }

Global.asax.cs

 protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            ILogger logger = LogManager.GetLogger("logfile");

            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters, logger);
           
        }

2019年3月2日土曜日

メールの添付ファイル winmail.datが開けない

メールの添付ファイル winmail.datが開けない。

原因
Microsoft OutLookでhtml mail形式でメール送信した場合に発生する。

対応
ThnderBirdならアドオンでLookOutを追加すれば表示される。
もしくは WinmailOpener というソフトウェアを使用する。

2019年2月26日火曜日

asp.net mvcでgoogle web fontを使いたい

asp.net mvcでgoogle web fontを使う方法

asp.net mvcのprojectにwebfontsフォルダを作成後
google web fontをそのフォルダに展開する。

プログラムではcssに以下のように指定する。

@font-face {
    font-family: 'Noto Sans JP';
    font-style: normal;
    font-weight: 100;
    src: url('webfonts/NotoSans-Thin.ttf') format('truetype');
}

@font-face {
    font-family: 'Noto Sans JP';
    font-style: normal;
    font-weight: 300;
    src: url('webfonts/NotoSans-Thin.ttf') format('truetype');
}

@font-face {
    font-family: 'Noto Sans JP';
    font-style: normal;
    font-weight: 400;
    src: url('webfonts/NotoSans-Regular.ttf') format('truetype');
}

@font-face {
    font-family: 'Noto Sans JP';
    font-style: normal;
    font-weight: 500;
    src: url('webfonts/NotoSans-Medium.ttf') format('truetype');
}

@font-face {
    font-family: 'Noto Sans JP';
    font-style: normal;
    font-weight: 700;
    src: url('webfonts/NotoSans-Bold.ttf') format('truetype');
}

@font-face {
    font-family: 'Noto Sans JP';
    font-style: normal;
    font-weight: 900;
    src: url('webfonts/NotoSans-Black.ttf') format('truetype');
}


src: urlで指定するfontを指定することでfontが使えた

※macのヒラノギfontってかっこいいよなぁ~

windows コマンドの引数は最大9個まで

Windowsのコマンド引数は最大9個まで
9個以上を渡す場合は shifyコマンドを利用する。

2019年2月19日火曜日

AndroidManifest.xml ERROR getting 'name' attribute: attribute is not a string value

GooglePlayでアプリをuploadした時にエラー表示された。

AndroidManifest.xml
ERROR getting 'name' attribute: attribute is not a string value

行番号が表示されたが、AndroidManifest.xmlにそんな行番号は存在しない。
丸一日かかって、ようやく原因が分かった。

AndroidManifest.xmlで文字変換を@stringで行っている。
この変換箇所が2か所あった。

1つ目はapp_name
2つ目はapp_id

2つ目のapp_idに . 文字列が有るとエラー表示されたので

AndroidManifest.xmlの @string/app_id を 修正することで大丈夫になった。

畜生、Androidのbuildって面倒くさいぞ~