テンプレートテスト
ブログの説明
ブログの説明2
menu
keyboard_arrow_up
Top
search
close
home
ホーム
computer
PC一般
construction
開発環境・ツール
code
プログラミング
home
ホーム
computer
PC一般
construction
開発環境・ツール
code
プログラミング
ラベル
Visual Studio
の投稿を表示しています。
すべての投稿を表示
ラベル
Visual Studio
の投稿を表示しています。
すべての投稿を表示
2020/10/08
image
NO IMAGE
外部 DLL を NuGet パッケージに含める方法
update
event_note
label
.NET Core
label
.NET Standard
label
Visual Studio
C/C++ で作成された外部の DLL を C# から扱うためのラッパーを作成して NuGet パッケージとして公開しようとしていたのですが、その外部 DLL 自体も NuGet パッケージに含める方法について調べてみました。
## 環境 - Visual Studio 2017 - .NET Core 2.2 ## 方法 ググってみるとまさにそのものが書いてある以下のページが見つかりました。 - https://blog.okazuki.jp/entry/2019/09/28/145646 しかし、これだけではいろいろはまったので、追記・補足しておきます。 ### PackagePath について 出力先となる `PackagePath` のディレクトリ名には `lib` を指定する必要があるようです。 指定しなかった場合、以下の警告が表示されました。 > warning NU5100: The assembly 'foo.dll' is not inside the 'lib' folder and hence it won't be added as a reference when the package is installed into a project. Move it into the 'lib' folder if it needs to be referenced. さらに、`lib` だけだと以下のエラーが表示されました。 > warning NU5103: The folder 'lib/foo.dll' under 'lib' is not recognized as a valid framework name or a supported culture identifier. Rename it to a valid framework name or culture identifier. `lib` の下にはフレームワーク名またはカルチャー名のディレクトリを指定する必要があるみたいです。 ```xml
``` また、 このフレームワーク名またはカルチャー名以下の階層が、作成した DLL と同じ階層に作られるようです。 例えば、作成した DLL が `sample.dll` だとして、外部の DLL を以下のように設定してパッケージに含めた場合、 ```
``` NuGet パッケージインストール後の配置は以下のようになります。 - sample.dll - foo\x64\foo.dll - foo\x86\foo.dll ### 外部 DLL を出力ディレクトリにコピー 外部 DLL を出力ディレクトリにコピーするには、Visual Studio で該当の DLL を右クリックし、`出力ディレクトリにコピー` の項目を `新しい場合はコピーする` (または `常にコピーする`) に設定しておく必要があります。 手動で `.csproj` ファイルを修正する場合は以下を追加します。 ```xml
PreserveNewest
``` ### publish 時に出力先ディレクトリに外部 DLL がコピーされない この外部 DLL を含んだ NuGet パッケージを使っているアプリケーションにおいて、`dotnet publish` コマンドを実行しても外部 DLL が出力先の `publish` ディレクトリにコピーされませんでした。 `publish` 時に出力ディレクトリに外部 DLL をコピーするためには、まずライブラリ側(NuGet パッケージにするほう)の `.csproj` ファイルに以下を追加します。 ```xml
true
``` しかし、これを `PackagePath` で `lib` を指定している箇所に指定しても上手くいきませんでした。 `PackagePath` を指定しなかった場合、該当のファイルはコンテンツとして追加されるようなので、そこに `PackageCopyToOutput` を設定すると上手くいきました。 具体的には以下のような感じです。 ```
true
true
``` これが一番はまりました。 ## 最終的に作成した設定 上記を踏まえ、最終的に `.csproj` ファイルの設定は以下のようになりました。 ```
true
PreserveNewest
true
PreserveNewest
```
## 参考 URL - https://blog.okazuki.jp/entry/2019/09/28/145646 - https://docs.microsoft.com/ja-jp/nuget/reference/msbuild-targets - https://docs.microsoft.com/ja-jp/nuget/consume-packages/package-references-in-project-files - https://stackoverflow.com/questions/42862739/how-to-copy-files-to-output-directory-from-a-referenced-nuget-package-in-net-co - https://docs.microsoft.com/ja-jp/nuget/reference/nuspec
Read more
2020/09/24
image
NO IMAGE
/platform:anycpu32bitpreferred は、/t:exe、/t:winexe、/t:appcontainerexe でのみ使用できます。
update
event_note
label
Visual Studio
xunit.runner.visualstudio をアップデートしたら以下のエラーが表示されるようになりました。
``` /platform:anycpu32bitpreferred は、/t:exe、/t:winexe、/t:appcontainerexe でのみ使用できます。 ``` ## 環境 - Visual Studio 2017 - xunit.runner.visualstudio 2.4.3 ## 対処方法 テストプロジェクトの `.csproj` ファイルをテキストエディタで開き、`
true
` の記述を削除します。
## 参考 URL - https://stackoverflow.com/questions/25528933/platformanycpu32bitpreferred-is-not-a-valid-setting-for-option-targetlibrary
Read more
2020/01/14
NuGet Server でプライベートリポジトリを構築する
update
event_note
label
IIS
label
Visual Studio
まとめるのが面倒なので細かい説明は省略し、大まかな流れについてのみ記載しておきます。
## 環境 - Windows 10 - Visual Studio 2017 ## 全体の流れ - NuGet Server アプリケーションの作成 - IIS のインストール ## NuGet Server アプリケーションの作成 以下を参考に、Visual Studio で新規に ASP.NET アプリケーションを作成します。 - https://docs.microsoft.com/ja-jp/nuget/hosting-packages/nuget-server 作成したら「発行」を実行します。 出力結果 `bin/Release/Publish` の中身一式を IIS にデプロイします。 ## IIS のインストール まずは IIS を有効にします。 「Windows の機能の有効化または無効化」から「インターネットインフォメーションサービス」を有効にします。 その際、「ASP.NET」も有効にしておきます。 (NuGet Server を動作させるには ASP.NET が必要なため)
### IIS の設定とデプロイ IIS マネージャーで Web サイトを追加します。 特別な設定などは必要なく、物理パスの箇所に上記 NuGet Server の出力結果一式を配置したら完了です。 ## こんなときは? ### HTTP Error 500.19 - Internal Server Error IIS に ASP.NET のモジュールがインストールされていないとこれが表示されます。 前述の「Windows の機能の有効化または無効化」から「ASP.NET」を有効にします。
## 参考 URL - https://docs.microsoft.com/ja-jp/nuget/hosting-packages/nuget-server - http://mtgiis.blogspot.com/2013/02/aspnet.html - https://blog.shibayan.jp/entry/20111017/1318860985
Read more
2019/12/17
Visual Studio 2019 用の .gitignore を自動生成する
update
event_note
label
Git
label
Visual Studio
Visual Studio 2019 において、git で無視すべきファイルが記載された .gitignore を自動で作成する方法です。
Visual Studio 2017 ではソリューション作成時に「新しい Git リポジトリの作成」というチェック項目があり、ソリューションの作成と同時に git リポジトリの作成と、Visual Studio で無視するべきファイルが記載された .gitignore が自動生成されていました。 しかし、Visual Studio 2019 ではこの項目がなくなっていました。 git リポジトリは作ればいいだけなんですが、.gitignore を自分で作るのは面倒なので、自動生成する方法を探してみました。 ## dotnet new gitignore .NET Core SDK 3.0 以降では以下のコマンドで .gitignore を自動生成できます。 ```sh dotnet new gitignore ``` ## gitignore.io 以下のサイトでプロジェクトに適した .gitignore を自動生成できます。 - https://gitignore.io/ Visual Studio 以外にもいろいろあります。
## 参考 URL - https://dev.to/rafalpienkowski/easy-to-create-gitignore-for-the-dotnet-developers-1h42 - http://baba-s.hatenablog.com/entry/2019/09/09/073000
Read more
2019/09/27
image
NO IMAGE
Visual Studio の作業ディレクトリを出力ディレクトリにする
update
event_note
label
Visual Studio
Visual Studio でデバッグを行う場合の作業ディレクトリを出力ディレクトリにします。
プロジェクトを右クリックし、「プロパティ」を選択します。 「デバッグ」のメニューを選択し、「作業ディレクトリ」に `$(TargetDir)` を入力すると、出力ディレクトリになります。
## 参考 URL - https://docs.microsoft.com/ja-jp/cpp/build/reference/common-macros-for-build-commands-and-properties?view=vs-2019
Read more
2019/06/18
image
NO IMAGE
Visual Studio でのリモートデバッグ
update
event_note
label
Visual Studio
Visual Studio でのリモートデバッグについてちょっとメモしておきます。
## 環境 - Visual Studio 2017 ## リモートデバッグのやり方 リモートデバッグのやり方自体は以下がわかりやすかったです。 - https://qiita.com/DogFortune/items/5874f845a5ad6b9ab1ef 基本的にはこの通りにやれば出来ると思います。 ### プロセスに対象のアプリケーションが表示されない 以下のことをやったら表示されました。 - リモートデバッガ―を一旦終了する - ターゲットのアプリケーションを起動する - リモートデバッガ―を起動 - Visual Studio でプロセスにアタッチ
## 参考 URL - https://qiita.com/DogFortune/items/5874f845a5ad6b9ab1ef
Read more
2018/11/13
image
NO IMAGE
MSB3105:重複した項目は"Sources"パラメータではサポートされていません
update
event_note
label
Visual Studio
C# のプロジェクトをビルドした時に MSB3105 エラーが発生しました。
Visual Studio でビルドしていたときはエラーにならなかったのですが、docker コンテナ内 ([microsoft/dotnet]())でビルドすると上記のエラーがでました。 どうやら Windows 環境と Linux 環境のファイルの扱いの差異によるもののようです。 ## 原因 大文字と小文字が異なるだけのファイルがあったことが原因です。 例えば、`Hoge.cs` と `hoge.cs` のようにです。 Windows 環境ではこのように大文字と小文字が異なるだけのファイルは作成できません。 しかし、Linux 環境ではできます。 Windows 環境においてファイル名の大文字と小文字だけを変更したときに、何故か Git 管理上では変更前のファイルと変更後のファイルが両方残ったままになっていたようで、そのまま Push してリポジトリ上には大文字と小文字が異なるだけのファイルが存在することになっていました。 ちなみに Git はデフォルトではファイル名の大文字と小文字を区別しませんが、今回もデフォルト設定もままでした。 で、このリポジトリを Windows 環境で Clone した場合、大文字と小文字が異なるだけのファイルは存在できないので、片方のファイルだけが Clone された状態になりますが、今回の場合はファイルの中身が2つとも全く同じだったので、ビルドも問題なくできていました。 逆に Linux 環境で Clone すると、大文字と小文字が異なるだけのファイルが存在しますが、C# コンパイラが対応していないためか、`MSB3105` エラーが表示されたようです。 ## 対策 何故このような状況になったかはよくわかりませんが、とりあえずリポジトリ上に大文字と小文字が異なるだけのファイルが存在しないようにすれば直りました。
Read more
2018/11/02
image
NO IMAGE
C# と C/C++ のライブラリを混在させる場合の構成
update
event_note
label
Visual Studio
1つの Visual Studio のソリューション内で、C# と C/C++ のプロジェクトを混在させた場合の構成についてです。
やりたいことは以下です。 - C/C++ で作成したライブラリを C# のプロジェクトで参照したい - 従って、C# のプロジェクトの前に C/C++ のプロジェクトをビルドする必要がある ## 依存関係 ソリューションエクスプローラーで C# のプロジェクトを右クリックし、[ビルド依存関係] > [プロジェクト依存関係] を選択します。 C/C++ のプロジェクトにチェックを入れます。 これで、C# のプロジェクトより先に C/C++ のプロジェクトのビルドが行われるようになります。 ## 構成マネージャーの設定 依存関係を設定しただけでは、C# のプロジェクトをビルドする際に、C/C++ のビルドが自動で行われるようにはならなかったので、構成マネージャーで設定します。 ソリューションエクスプローラーでソリューションを右クリックし、[構成マネージャー] を選択します。 C/C++ のプロジェクトにチェックを入れます。 (Debug ビルドと Release ビルドの両方でチェックを入れます。) ## 成果物のコピー C# 側のプロジェクトのビルド前イベント(またはビルド後イベント)で、C/C++ のプロジェクトで作成した DLL を C# のプロジェクトの出力フォルダにコピーするようにバッチファイルなどを作成します。
## 参考 URL - https://msdn.microsoft.com/ja-jp/library/et61xzb3.aspx - http://www.moonmile.net/blog/archives/7329
Read more
2018/10/19
image
NO IMAGE
Visual Studio で保存時にコードを自動整形する
update
event_note
label
Visual Studio
Visual Studio では `Ctrl+K Ctrl+D` でコードの自動整形が行えますが、これを保存時に自動で行うためにプラグインをインストールします。
有名なのは `Productivity Powers Tool` というプラグインですが、他にもいろいろな機能が一緒に入ってしまうので、シンプルにコードの自動整形に限定したプラグインとして、`Format document on Save` というプラグインを紹介します。 環境は Visual Studio 2017 です。 - メニューから「ツール」→「拡張機能と更新プログラム」を選択 - 「オンライン」から「Format document on Save」をダウンロードする。 Visual Studio を再起動したら有効になります。 メニューの「ツール」→「オプション」に新しく「Format document on Save」が追加されており、保存時にコードを自動整形するファイルの拡張子などを指定することもできるようです。
Read more
2018/09/15
Visual Studio のデバッガで例外発生箇所で止める
update
event_note
label
Visual Studio
例外が発生した時点で停止する方法です。
## 環境 - Visual Studio 2017 ## 方法 [デバッグ] > [ウィンドウ] > [例外設定] を開きます。 例外が発生した時点で停止したい例外にチェックを入れます。 例えば、C# の場合は `Common Language Runtime Exceptions` にチェックを入れると、全ての例外が対象となります。
右クリックすれば既定値にもすぐに戻せます。
Read more
2018/09/10
Visual Studio で Python の開発環境を構築する
update
event_note
label
Python
label
Visual Studio
主題の通り、Python の開発環境として Visual Studio を使用する方法です。
何故 Visual Studio かというと、単に私が普段 C# を使っていて使い慣れているというだけです。 Visual Studio は既にインストール済みの前提で、Python のバージョンは Python3 のみです。 ## 環境 - Visual Studio 2017 (15.8.3) - Windows 10 Pro 64bit ## インストール方法 スタートメニューから `Visual Studio Installer` を起動し、[変更] を押します。 Python のチェックボックスを ON にします。 また、合わせて Anaconda もインストールしたいと思うので、[Anaconda3] のチェックボックスも ON にします。
以上で完了です。 環境 Path の設定なども特に行う必要はありませんでした。 Python2 も使いたい場合などはまたいろいろ設定を行う必要があるみたいですが。 ## プロジェクトの作成 Python 用のプロジェクト (コンソールアプリケーション) を作成する手順は以下です。 - メニューから [File] > [New] > [Project...] を選択 - [Installed] > [Python] を選択 - [Python Application] を選択して OK を押す。
Read more
2018/09/04
ASP.NET Core のファイルアップロードサイズの上限を変更する
update
event_note
label
ASP.NET Core
label
Visual Studio
ASP.NET Cpre アプリケーションのデバッグを行っていると 404.13 エラーが表示され、調べてみると、アップロードしたファイルのサイズが大きすぎたようです。
規定値は 30 MB らしいのですが、この上限を変更します。 ## 環境 - Visual Studio 2017 - ASP.NET Core 2.1 ## IIS Express を使用している場合 IIS Express の設定を変更します。 `applicationhost.config` の設定を変更する方法と、`web.config` を作成する方法の二通りあるようです。 ### applicationhost.config の変更する方法 Visual Studio 2017 の場合、`applicationhost.config` は以下の場所にあります。 `[ソリューションフォルダ]\.vs\config\applicationhost.config` `requestFiltering` セクションに以下のような設定を追加します。 ```
``` ### web.config を作成する方法 `applicationhost.config` は `.vs` の配下にあるので、ソリューション内の全プロジェクトに影響がありますし、そもそも Git などのソースコード管理から除外している場合が多いと思うので、`web.config` を作成するほうが良いかなと思います。 以下に詳しく説明されていたので、そのまま引用します。 - http://www.talkingdotnet.com/how-to-increase-file-upload-size-asp-net-core/ ASP.NET Core のプロジェクト配下に `web.config` というファイルを作成し、以下の内容を記述します。 ```xml
``` ## Kestrel を使用している場合 IIS Express ではなく Kestrel を使用している場合は、`program.cs` の `CreateDefaultBuilder` で、`MaxRequestBodySize` の値を設定すれば OK です。 ```cs public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup
() .UseKestrel(options => { options.Limits.MaxRequestBodySize = 52428800; // 50MiB }); } ``` ただし、この場合はプロジェクト内全てに影響するグローバルな設定なので、Controller ごとに上限を変更したい場合は、後述するように Attribute を使います。 ### 特定の Controller でのみ上限を変更したい場合 Controller ごとにファイルアップロードサイズの上限を変更したい場合は、以下のように Controller のアクションメソッドに Attribute を追加します。 サイズを指定する場合は `RequestSizeLimit` を、無制限にしたい場合は `DisableRequestSizeLimit` を追加します。 ```cs [HttpPost] [RequestSizeLimit(40000000)] public async Task
UploadFiles(IFormFile file) { //TODO: Save file } ``` サイズを無制限にしたい場合です。 ```cs [HttpPost] [DisableRequestSizeLimit] public async Task
UploadFiles(IFormFile file) { //TODO: Save file } ```
## 参考 URL - http://www.talkingdotnet.com/how-to-increase-file-upload-size-asp-net-core/ - https://docs.microsoft.com/ja-jp/aspnet/core/host-and-deploy/iis/?view=aspnetcore-2.1&tabs=aspnetcore2x#webconfig-file - https://stackoverflow.com/questions/46510836/http-error-404-13-asp-net-core-2-0 - https://qiita.com/k_saito/items/790884389e0c0611b258
Read more
2018/08/30
依存している dll が出力フォルダにコピーされない
update
event_note
label
.NET Framework
label
.NET Standard
label
Visual Studio
.NET Framework で作成しているアプリケーションで、.NET Standard で作成されたライブラリを参照している場合、依存している dll が出力フォルダにコピーされませんでした。
## 環境 - Visual Studio 2017 - .NET Framework 4.6.1 - .NET Standard 2.0 ## 依存関係 まず、説明の都合上以下のように定義します。 - .NET Framework で作成したアプリケーションを **A** とする - .NET Standard で作成したライブラリを **B** とする - その .NET Standard で作成されたライブラリが依存している他の dll などを **C** とする 依存関係は A -> B -> C のようになります。 このとき、A をビルドすると、出力フォルダに B の dll はコピーされるのですが、C の dll がコピーされないという状況になりました。 ## 原因と解決策 NuGet のパッケージ管理には `packages.config` 形式と、`PackageReference` 形式があるようです。 `packages.config` 形式だと今回のような現象が起こるようで、`PackageReference` 形式に移行すれば解決します。 - https://docs.microsoft.com/ja-jp/nuget/reference/migrate-packages-config-to-package-reference 尚、.NET Core で新規にプロジェクトを作成した場合は `PackageReference` 形式になるようなので、今回のような問題は発生しません。 ## 移行方法 Visual Studio で `packages.config` から `PackageReference` へマイグレーションすることができます。 ソリューションファイルを開き、プロジェクト内の `packages.config` を右クリックします。 `Migrate packages.config to PackageReference...` を選択するとマイグレーションの画面が表示されるので、OK を押すとマイグレーションが実行されます。
`Migrate packages.config to PackageReference...` のメニューが表示されない場合は、Visual Studio の設定を見直してみてください。 NuGet のデフォルトのパッケージ管理方式が `PackageReference` になっているとマイグレーションのメニューは表示されないようなので、`packages.config` に変更してください。
尚、stackoverflow では .NET Framework で作成したアプリケーションのプロジェクトファイル (.csproj) を開き、`PropertyGroup` に以下を追加すれば OK というのがありました。 ```
PackageReference
``` しかし、この場合 `package.config` で管理しているパッケージが未インストールされていない状態になるので、既に `package.config` が存在する場合はマイグレーションを行ったほうが良いと思います。
## 参考 URL - https://docs.microsoft.com/ja-jp/nuget/reference/migrate-packages-config-to-package-reference - https://github.com/NuGet/docs.microsoft.com-nuget/issues/905 - https://stackoverflow.com/questions/51155274/copy-all-dependencies-from-net-standard-libraries-to-net-framework-console-app
Read more
2018/08/17
Productivity Power Tools をアンインストールしても機能が無効化されない
update
event_note
label
Visual Studio
Visual Studio 2017 の拡張機能 `Productivity Power Tools` に関することです。
Visual Studio 2017 に拡張機能 `Productivity Power Tools` をインストールしたのですが、Visual Studio の動作がかなり重くなったのですぐにアンストールしました。 しかし、アンインストールしても `Productivity Power Tools` で追加された機能が無効化されず、何でだろうと思い、調べてみました。 ## 原因 Visual Studio 2017 からは `Productivity Power Tools` の各機能が個別のプラグインとしてインストールされるようになったそうです。 - http://www.atmarkit.co.jp/ait/articles/1704/04/news030.html 従って、`Productivity Power Tools` をアンインストールしても個別のプラグインは残ったままなので、機能が無効化されるわけではないということのようです。 ## 対策 現状 `Productivity Power Tools` で追加された機能を無効化するには、追加されたプラグインを個別にアンインストールしていくしかないようです。 - https://github.com/Microsoft/VS-PPT/issues/149 面倒ですね。 ただ、`Productivity Power Tools` の機能を全部使うと重いですが、必要な機能だけを残して、不要な機能はアンインストールすればかなり軽くなったので、個別のプラグインとして提供されるようになったこと自体は良いと思います。 尚、拡張機能のアンインストール画面において、`Productivity Power Tools` により追加されたプラグインかどうかはアイコンで判別できます。 アイコンの右下に緑色の電球マークがついているものは、`Productivity Power Tools` により追加されたプラグインです。
## 参考 URL - http://www.atmarkit.co.jp/ait/articles/1704/04/news030.html - https://github.com/Microsoft/VS-PPT/issues/149
Read more
2018/07/09
image
NO IMAGE
_CRT_SECURE_NO_WARNINGS の対策
update
event_note
label
C/C++
label
Visual Studio
Visual Studio で C 言語を扱っていると、_CRT_SECURE_NO_WARNINGS (C4996) というエラーが表示されることがあります。
例えば、`sprintf` を使っていると、危ないから `sprintf_s` を使えって感じでこのエラーが表示されます。 確かにその通りなんですが、余計なお世話なときもあるので、この場合には以下で回避できます。 # 対策 以下を定義するだけです。 ```cpp #define _CRT_SECURE_NO_WARNINGS ``` ソースファイルに記述するのが面倒な場合は、[プロパティ] > [C/C++] > [プリプロセッサ] に定義しておけば、一律で抑制できます。
Read more
2018/06/17
image
NO IMAGE
Visual Studio でコメントの桁位置がずれる
update
event_note
label
Visual Studio
Visual Studio 2017 でコメントに全角文字を使用していた場合に一部桁位置がずれて表示されていました。
Visual Studio 2017 の場合、言語設定が英語の場合のフォントのデフォルト値は `Consolas` です。 この場合、罫線(例えば┌)などの全角文字を使用していると、桁位置がずれることがありました。 尚、日本語の場合のフォントのデフォルト値は `MS ゴシック` です。
Read more
2018/05/15
image
NO IMAGE
[C#] 実行ファイルのある場所を取得
update
event_note
label
.NET Core
label
.NET Framework
label
C#
label
Visual Studio
プログラムを書いていると、実行ファイルのある場所を起点にパスを考えることはよくあるかと思います。
私は今まで実行ファイルのある場所をカレントディレクトリで取得していたのですが、カレントディレクトは必ずしも実行ファイルのある場所とは限らないので、注意が必要です。 (私がバカなだけで、もしかしてみんな当たり前に知ってることかもしれませんが・・・) ## 環境 - Visual Studio 2017 - ASP.NET Core 2.0 ## GetCurrentDirectory カレントディレクトリのパスを取得したい場合、通常は `GetCurrentDirectory` を使用すると思います。 ```csharp using System.IO; // ... var dir = Directory.GetCurrentDirectory(); ``` Visual Studio で開発している場合、通常上記のパスは以下のようになります。 **例** - デバッグビルド時:`{プロジェクトルート}\bin\Debug\netcoreapp2.0` - リリースビルド時:`{プロジェクトルート}\bin\Release\netcoreapp2.0` 基本的にはこれで問題ないとは思うのですが、カレントディレクトリは `SetCurrentDirectory` で変更することができるので、意図しないパスに設定されている可能性もあります。 また、ASP.NET Core において、`GetCurrentDirectory` が Visual Studio のプロジェクトルートを示すことがあり、デバッグ時に困ることがありました。 何故そうなったのかは不明ですが、前述したとおり、カレントディレクトは変更できるので、意図しないところで変更されている可能性もあります。 ## 実行ファイルのあるパスを取得 私の場合、今まではカレントディレクトリを実行ファイルのあるパスと同義で扱っていましたが、前述のように必ずしもそうでない場合があるので、最近は実行ファイルのあるパスを取得したい場合は以下のように書いています。 ```csharp using System.IO; using System.Reflection; // ... var dir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); ```
Read more
2018/03/31
image
NO IMAGE
ASP.NET Core のプロジェクトから Bower を削除する
update
event_note
label
ASP.NET Core
label
Visual Studio
Bower が非推奨となり、代替手段として npm などを使用するようになったので、ASP.NET Core のプロジェクトから Bower を削除します。
といってもやることは簡単で、以下のファイルとフォルダを削除するだけです。 - bower.json - .bowerrc - wwwroot/lib Visual Studio を再起動すると、依存関係から Bower の項目が消えています。 ## 参考 URL - https://stackoverflow.com/questions/44730490/how-do-i-remove-bower-from-a-asp-net-core-web-application
Read more
2018/03/30
ASP.NET Core で npm を使用する
update
event_note
label
ASP.NET Core
label
npm
label
Visual Studio
Bower が非推奨になったということで、代わりに npm を使用します。
## 環境 - Visual Studio 2017 - Node.js v8.9.4 ## package.json の作成 ### Visual Studio で作成 ソリューションエクスプローラーからプロジェクトを右クリックし、[追加] > [新しい項目] を選択します。 [npm 構成ファイル] を追加します。
すると、以下の内容で `package.json` が作成されます。 ```json { "version": "1.0.0", "name": "asp.net", "private": true, "devDependencies": { } } ``` ### npm で作成 以下のコマンドで作成することもできます。 ```sh > npm init ``` ## パッケージのインストール ### Visual Studio からインストール `package.json` を変更します。 `package.json` 自体の書き方については省略します。 ```json { "version": "1.0.0", "name": "asp.net", "private": true, "devDependencies": { "bootstrap": "^3.3.7", "jquery": "^2.2.0", "jquery-validation": "^1.14.0", "jquery-validation-unobtrusive": "^3.2.6" } } ``` ソリューションエクスプローラーから `package.json` を右クリックし、[パッケージの復元] を選択するとインストールされます。 プロジェクトルートに `node_modules` というフォルダが作成され、そこにパッケージがダウンロードされています。 ### Package Installer Visual Studio の拡張機能に `Package Installer` というのがあり、これを使えばもっと簡単にインストールすることもできます。 Visual Studio のメニューから、[ツール] > [拡張機能と更新プログラム] を選択します。 [オンライン] から [Package Installer] をダウンロードします。 (`npm` で検索するとすぐに見つかります。)
ダウンロード後は、一度 Visual Studio を再起動するとインストールされます。 パッケージをインストールするには、プロジェクトを右クリックし、[Quick Install Package] を選択します。 コンボボックスで `npm` を選択し、インストールしたいパッケージ名を入力して `install` をクリックするとインストールされます。
### npm からコマンドでインストール npm で直接インストールすることもできます。 例えば以下のような感じです。 ```sh >npm install jquery --save-dev ``` インストールしたパッケージを自動的に `packages.json` に追加 `--save-dev` を指定します。 デフォルトではパッケージのバージョンは最新となります。 ## このあとは 前述したとおり、npm でインストールしたパッケージは `node_modules` に配置されます。 実際に ASP.NET Core で Web アプリケーションを動作させる場合は、`wwwroot` に配置する必要があります。 これを自動化するためには gulp を使用するそうですが、それはまた今度書きます。 ## 参考 URL - https://wildermuth.com/2017/11/19/ASP-NET-Core-2-0-and-the-End-of-Bower - https://www.linkedin.com/pulse/use-npm-instead-bower-gulp-grunt-visual-studio-aspnet-naghizadeh
Read more
2018/03/29
Visual Studio のプロジェクト間でファイルを共有する
update
event_note
label
Visual Studio
Visual Studio のプロジェクト間でファイルを共有する方法です。
いくつか方法があると思いますが、ぱっと思いつくのは以下です。 - クラスライブラリの作成 - 共有プロジェクトの作成 しかし、今回共有したかったのは単純なテキストファイルだったので、リンクとしてファイルを追加する方法を選択しました。 ## 環境 - Visual Studio 2017 ## リンクとしてファイルを追加 ファイルの実体はどこか一つのプロジェクトにあります。 ソリューションエクスプローラーで、共有したいプロジェクトを右クリックします。 [追加] > [既存の項目] を選択します。 追加したいファイルを選択し、[追加] ボタンの横にある下矢印をクリックし、[リンクとして追加] を選択します。
これで、プロジェクト間でファイルを共有できます。 ファイルの実体は一つですが、出力ディレクトリへのコピーなどは個別に設定できます。 ## 参考 URL - https://code.i-harness.com/ja/q/110931
Read more
前の投稿
ホーム
Translate
Popular Posts
ASP.NET Core で AdminLTE を使用する
TortoiseGit でコミットメッセージを変更する
TortoiseGit でリモートリポジトリのタグを削除する
image
NO IMAGE
ASP.NET Core におけるフロントエンドのパッケージ管理
image
NO IMAGE
C# と C/C++ のライブラリを混在させる場合の構成
image
NO IMAGE
[C#] Dictionary の キーがタプルの場合に JSON へのシリアライズとデシリアライズを行う方法
image
NO IMAGE
TortoiseGit でブランチ間の差分を見る
image
NO IMAGE
ASP.NET Core (.NET Core) でバックグランドタスクを起動する
image
NO IMAGE
.NET アプリケーションを XCOPY 配置で配布する
image
NO IMAGE
TestLink で LDAP 認証を行う
Labels
.NET Core
31
.NET Framework
17
.NET Standard
2
AdminLTE
1
Apache
3
AppVeyor
2
AsciiDoc
3
ASP.NET Core
55
Atom
4
AWS
2
AWS Cloud9
4
blockdiag
1
Blogger
10
Bootstrap
3
C/C++
6
C#
106
CentOS
3
Chrome
1
Chronograf
3
Codecov
1
CSS
1
Docker
28
DokuWiki
4
Doxygen
1
draw.io
1
Electron.NET
2
Entity Framework Core
9
Excel
2
FFmpeg
2
Firefox
5
Git
12
GitBook
4
GitBucket
7
GitHub
7
GitLab
30
Go
1
Google
1
Google Cloud Platform
1
Grafana
5
HTML
5
IIS
8
InfluxDB
6
JavaScript
7
Jenkins
7
Linux
25
Log4View
1
MahApps.Metro
3
MaterialDesignInXamlToolkit
1
MVC
1
MVVM
6
NLog
3
Node.js
3
npm
1
OpenSSL
3
ownCloud
2
Pine Script
1
PlantUML
5
PowerShell
7
Prism
2
Python
11
Razor
3
Redmine
30
remark.js
2
rocketchat
4
Ruby
3
SignalR
1
Socket.IO
1
SonarQube
5
Sphinx
10
SQL Server
5
SQLite
1
t
1
TestLink
2
Tomcat
2
TortoiseGit
10
TortoiseSVN
2
Trading View
1
Travis CI
1
Ubuntu
13
Visual Studio
39
Visual Studio Code
9
Vue.js
8
Windows
56
Windows 10
4
Windows ADK
1
Windows API
2
Windows Embedded
4
wkhtmltopdf
2
Word
3
WPF
12
WSL
1
Xamarin
1
xUnit
5
アプリケーション
1
デザインパターン
1
テスト
3
バッチファイル
2
ぴよ
3
プログラミング
3
ライセンス
1
ラベル
3
ラベル1
2
英語
2
雑記
1
書籍
1
数学
1
正規表現
1
Blog Archive
▼
2022
(1)
▼
2月
(1)
例えばボタンをクリックしたときに重い処理を実行する場合など、そのまま処理すると GUI が固まって...
►
2021
(24)
►
5月
(7)
►
4月
(8)
►
3月
(2)
►
2月
(2)
►
1月
(5)
►
2020
(60)
►
12月
(1)
►
11月
(3)
►
10月
(3)
►
9月
(3)
►
8月
(3)
►
7月
(7)
►
6月
(7)
►
5月
(2)
►
4月
(6)
►
3月
(6)
►
2月
(7)
►
1月
(12)
►
2019
(92)
►
12月
(13)
►
11月
(9)
►
10月
(3)
►
9月
(2)
►
8月
(3)
►
7月
(5)
►
6月
(11)
►
5月
(6)
►
4月
(17)
►
3月
(9)
►
2月
(6)
►
1月
(8)
►
2018
(100)
►
12月
(1)
►
11月
(11)
►
10月
(8)
►
9月
(6)
►
8月
(10)
►
7月
(10)
►
6月
(8)
►
5月
(9)
►
4月
(8)
►
3月
(14)
►
2月
(4)
►
1月
(11)
►
2017
(117)
►
12月
(14)
►
11月
(20)
►
10月
(17)
►
9月
(19)
►
8月
(10)
►
7月
(8)
►
6月
(3)
►
5月
(6)
►
4月
(5)
►
3月
(2)
►
2月
(8)
►
1月
(5)
►
2016
(91)
►
12月
(5)
►
11月
(9)
►
10月
(11)
►
9月
(9)
►
8月
(6)
►
7月
(14)
►
6月
(14)
►
5月
(11)
►
4月
(10)
►
3月
(2)
►
2015
(23)
►
12月
(4)
►
11月
(2)
►
10月
(8)
►
9月
(8)
►
7月
(1)
►
2013
(3)
►
11月
(1)
►
9月
(1)
►
7月
(1)
►
2012
(2)
►
7月
(1)
►
6月
(1)
►
2011
(1)
►
9月
(1)
►
2009
(1)
►
7月
(1)
►
2008
(2)
►
11月
(1)
►
7月
(1)
►
2007
(3)
►
10月
(3)