C#を手動でコンパイル(NPOIを使う)
.NETが入っていればC#のコンパイラ「csc.exe」が使えます。
C:\Windows\Microsoft.NET\Framework???
このあたりにあります。
何をしたかったのか?
オフライン環境(NuGet使わず)で、C# + NPOI でExcelを操作したかった。
やったこと
NuGetのサイトから「NPOI」のパッケージ(npoi.X.X.X.nupkg)をダウンロードしてきた。また、依存ライブラリとして「SharpZiplib」が必要なので、同様にパッケージをダウンロードする。(画面右側の「Download package」からダウンロード。拡張子は *.nupkgだが、中身はZipなので拡張子変更などして展開する。)
SharpZipLibのバージョンに注意すること。NPOIが依存しているSharpZipLibのバージョンが、必ずしも最新ではない。(どのバージョンが必要かは、「NPOI.nuspec」に書いてあるようです)
2021.7.16時点においては…
- NPOI 2.5.3 →最新バージョン
- SharpZipLib 1.2.0 →最新バージョンは1.3.2だが、NPOI.2.5.3には1.2.0が必要
とりあえず、DLしてきた圧縮ファイルを展開して、DLLを1か所に集めてコンパイルします。サンプルソースはググるといっぱい出てくるのでそれを参考に。コンパイルは、csc.exeのパスを通すしておくと楽!
↓↓↓実際に作ったバッチ(パスが通った状態でコマンドプロンプト使えるので)
[init.bat] set PATH=C:\Windows\Microsoft.NET\Framework64\4.0.30319;%PATH% cmd
コンパイルのコマンドは以下
csc source.cs /reference:NPOI.dll,NPOI.OOXML.dll,NPOI.OpenXml4Net.dll,NPOI.OpenXmlFormats.dll,ICSharpCode.SharpZipLib.dll