はじまり、はじまり。
今回は、アセンブリの開発~配置~実行についてまとめました。
■ ■ ■ ■ 目次
1. 厳密名付きdllの作成 (アセンブリの作成)
1-1. dllのコンパイル
1-2. dllのリンク
2. 厳密名付きdllの配置 (アセンブリのインストール)
2-1. dllがGACに登録されてない事の確認
2-2. dllをGacUtilでGACに登録
2-3. dllがGACに登録されている事の確認
3. exeの作成
4. exeの実行
5. おまけ (厳密名付きdllのアンインストール (アセンブリのアンインストール) )
5-1. dllがGACに登録されている事の確認
5-2. dllをGacUtilでGACから削除 (管理者で実行)
5-3. dllがGACに登録されてない事の確認
■ ■ ■ ■ まとめ結果
■ ■ ■ 1. 厳密名付きdllの作成 (アセンブリの作成)
■ ■ 1-1. dllのコンパイル
■ テストコード (StrixUralensis.cs)
------------------- using System; public class StrixUralensisClass { public static StrixUralensisClass Create() { Console.WriteLine("StrixUralensis[フクロウ]Class.Create()"); return new StrixUralensisClass(); } } -------------------
■ コンパイル
------------------- C:\Users\user>CD C:\CSharp C:\CSharp>SET CSC_DIR=C:\Windows\Microsoft.NET\Framework64\v4.0.30319 C:\CSharp>"%CSC_DIR%\csc.exe" /nologo /t:module StrixUralensis.cs C:\CSharp> -------------------
■ ■ 1-2. dllのリンク
------------------- C:\Users\user>CD C:\CSharp C:\CSharp>SET AL_DIR=C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\x64 C:\CSharp>"%AL_DIR%\al.exe" /t:library /out:StrixUralensis.dll /version:1.0 /keyname:CspContainer /nologo StrixUralensis.netmodule C:\CSharp> -------------------
■ ■ ■ 2. 厳密名付きdllの配置 (アセンブリのインストール)
■ ■ 2-1. dllがGACに登録されてない事の確認
------------------- C:\Users\user>CD C:\CSharp C:\CSharp>SET GACUTIL_DIR=C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\x64 C:\CSharp>"%GACUTIL_DIR%\gacutil.exe" /nologo /l StrixUralensis グローバル アセンブリ キャッシュには次のアセンブリが含まれています: 項目の数 = 0 C:\CSharp> -------------------
■ ■ 2-2. dllをGacUtilでGACに登録
------------------- C:\Users\user>CD C:\CSharp C:\CSharp>SET GACUTIL_DIR=C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\x64 C:\CSharp>"%GACUTIL_DIR%\gacutil.exe" /nologo /i StrixUralensis.dll アセンブリが正しくキャッシュに追加されました C:\CSharp> -------------------
■ ■ 2-3. dllがGACに登録されている事の確認
------------------- C:\Users\user>CD C:\CSharp C:\CSharp>SET GACUTIL_DIR=C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\x64 C:\CSharp>"%GACUTIL_DIR%\gacutil.exe" /nologo /l StrixUralensis グローバル アセンブリ キャッシュには次のアセンブリが含まれています: StrixUralensis, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b7137228d5cbf3bf, processorArchitecture=MSIL 項目の数 = 1 C:\CSharp> -------------------
■ ■ ■ 3. exeの作成
■ テストコード (AikotobahaStrix.cs)
------------------- using System; class StrixClass { static void Main(string[] args) { Console.WriteLine("Strix[フクロウ類]Class.Main()"); StrixUralensisClass.Create(); } } -------------------
■ コンパイル結果
------------------- C:\Users\user>CD C:\CSharp C:\CSharp>SET CSC_DIR=C:\Windows\Microsoft.NET\Framework64\v4.0.30319 C:\CSharp>"%CSC_DIR%\csc.exe" /noconfig /r:StrixUralensis.dll /nologo AikotobahaStrix.cs C:\CSharp> -------------------
■ ■ ■ 4. exeの実行
------------------- C:\Users\user>CD C:\CSharp C:\CSharp>AikotobahaStrix.exe Strix[フクロウ類]Class.Main() StrixUralensis[フクロウ]Class.Create() C:\CSharp>dir ドライブ C のボリューム ラベルがありません。 ボリューム シリアル番号は 4840-5473 です C:\CSharp のディレクトリ 2018/06/03 18:44. 2018/06/03 18:44 .. 2018/06/03 18:42 3,584 AikotobahaStrix.exe 1 個のファイル 3,584 バイト 2 個のディレクトリ 57,164,226,560 バイトの空き領域 C:\CSharp> -------------------
■ ■ ■ 5. おまけ (厳密名付きdllのアンインストール (アセンブリのアンインストール) )
■ ■ 5-1. dllがGACに登録されている事の確認
------------------- C:\Users\user>CD C:\CSharp C:\CSharp>SET GACUTIL_DIR=C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\x64 C:\CSharp>"%GACUTIL_DIR%\gacutil.exe" /nologo /l StrixUralensis グローバル アセンブリ キャッシュには次のアセンブリが含まれています: StrixUralensis, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b7137228d5cbf3bf, processorArchitecture=MSIL 項目の数 = 1 C:\CSharp> -------------------
■ ■ 5-2. dllをGacUtilでGACから削除 (管理者で実行)
------------------- C:\Users\user>CD C:\CSharp C:\CSharp>SET GACUTIL_DIR=C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\x64 C:\CSharp>"%GACUTIL_DIR%\gacutil.exe" /nologo /u StrixUralensis,Version=1.0.0.0,Culture=neutral,PublicKeyToken=b7137228d5cbf3bf アセンブリ: StrixUralensis, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b7137228d5cbf3bf, processorArchitecture=MSIL アンインストール済み: StrixUralensis, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b7137228d5cbf3bf, processorArchitecture=MSIL アンインストールされたアセンブリの数 = 1 エラーの数 = 0 C:\CSharp> -------------------
■ ■ 5-3. dllがGACに登録されてない事の確認
------------------- C:\Users\user>CD C:\CSharp C:\CSharp>SET GACUTIL_DIR=C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\x64 C:\CSharp>"%GACUTIL_DIR%\gacutil.exe" /nologo /l StrixUralensis グローバル アセンブリ キャッシュには次のアセンブリが含まれています: 項目の数 = 0 C:\CSharp> -------------------
おわり