• R/O
  • SSH
  • HTTPS

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

javaandroidc++linuxobjective-cc#cocoa誰得qtrubygamebathyscaphephpgui翻訳windowspythoncomegattwittertestframeworkbtronarduinovb.net計画中(planning stage)directxpreviewerゲームエンジンdom

docx, xlsx, pptx の中に張り付けられた PNG ( BMP ) を JPEG へ変換してファイルサイズを削減する。


Commit MetaInfo

Revision146 (tree)
Time2019-03-22 18:22:36
Authorhor931101jp

Log Message

(empty log message)

Change Summary

Incremental Difference

--- tags/OfficeImageReducer_0402-190321/OfficeImageReducerCS/ClassMyCommon.cs (nonexistent)
+++ tags/OfficeImageReducer_0402-190321/OfficeImageReducerCS/ClassMyCommon.cs (revision 146)
@@ -0,0 +1,153 @@
1+using System;
2+using System.Windows.Forms;
3+
4+/// <summary>
5+/// 共通部品
6+/// </summary>
7+namespace OfficeImageReducer
8+{
9+ /// <summary>
10+ /// 共通部品クラス
11+ /// よく使う処理とかオブジェクトを定義
12+ /// </summary>
13+ public class ClassMyCommon
14+ {
15+ /// <summary>プログラムのタイトル</summary>
16+ public const string TITLE = "Office Image Reducer";
17+
18+ /// <summary>プログラムのバージョン</summary>
19+ public const string VERSION = "04.02-190321";
20+
21+ /// <summary>プログラム開始時の表示メッセージ</summary>
22+ public const string OPENING_MSG =
23+ "Programmed by S.Hori\r\n" +
24+ "\r\n" +
25+ "下記のWEBサイトから最新版を入手できます。\r\n" +
26+ "This software is hosted in the following site.\r\n" +
27+ "https://ja.osdn.net/users/hor931101jp/pf/01\r\n" +
28+ "下記のSVNリポジトリからソースコードをチェックアウトできます。\r\n" +
29+ "Anonymous access will allow anyone to download the source code.\r\n" +
30+ "svn://svn.pf.osdn.jp/h/ho/hor931101jp/01/tags\r\n" +
31+ "\r\n" +
32+ "ここに docx xlsx pptx ファイルをドラックアンドドロップしてください。\r\n" +
33+ "Please drag and drop docx, xlsx, pptx files here.\r\n";
34+
35+ /// <summary>メインフォームのインスタンス</summary>
36+ public static Form frmMain;
37+
38+ /// <summary>ログのインスタンス</summary>
39+ static public ClassLog Log;
40+
41+ /// <summary>
42+ /// Application.DoEventsとThread.Sleepをしながら待機処理
43+ /// </summary>
44+ /// <param name="WaitTime">待ち時間[ms]</param>
45+ static public void WaitTickCount(Int32 WaitTime)
46+ {
47+ Int64 StartTickCount = Environment.TickCount;
48+ Int64 NowTickCount;
49+ do
50+ {
51+ Application.DoEvents();
52+ System.Threading.Thread.Sleep(1);
53+ NowTickCount = Environment.TickCount;
54+ }
55+ while ((NowTickCount - StartTickCount) < WaitTime);
56+ }
57+
58+ [System.Runtime.InteropServices.DllImport("user32.dll")]
59+ private static extern IntPtr GetSystemMenu(IntPtr hWnd, bool bRevert);
60+
61+ [System.Runtime.InteropServices.DllImport("user32.dll")]
62+ private static extern bool DrawMenuBar(IntPtr hWnd);
63+
64+ [System.Runtime.InteropServices.DllImport("user32.dll")]
65+ private static extern bool RemoveMenu(IntPtr hMenu, uint uPosition, uint uFlags);
66+
67+ /// <summary>
68+ /// フォームの右上ボタンと左上メニューのカスタマイズ
69+ /// フォーム右上ボタンのうち[x]ボタンを無効化する
70+ /// 左上メニューの[閉じる]を非表示
71+ /// </summary>
72+ /// <param name="f">対象とするフォーム</param>
73+ public static void FormControlBoxCustomize(Form f)
74+ {
75+ //const uint SC_SIZE = 0xF000; //システムメニューの「サイズ変更」
76+ //const uint SC_MOVE = 0xF010; //システムメニューの「移動」
77+ //const uint SC_MINIMIZE = 0xF020; //システムメニューの「最小化」
78+ //const uint SC_MAXIMIZE = 0xF030; //システムメニューの「最大化」
79+ const uint SC_CLOSE = 0xF060; //システムメニューの「閉じる」
80+ //const uint SC_RESTORE = 0xF120; //システムメニューの「元のサイズに戻す」
81+ const uint MF_BYCOMMAND = 0x0; //メニュー項目指定
82+ const uint MF_BYPOSITION = 0x400; //ポジション指定
83+ //const uint MF_ENABLED = 0x0; //有効化
84+ //const uint MF_GRAYED = 0x1; //無効化
85+ //const uint MF_DISABLED = 0x2; //半無効化(見かけ上有効)
86+ bool DUMMY;
87+
88+ //「区切り線」の削除
89+ DUMMY = RemoveMenu(GetSystemMenu(f.Handle, false), 5, MF_BYPOSITION);
90+ //「閉じる」の削除 + xボタンの無効化
91+ DUMMY = RemoveMenu(GetSystemMenu(f.Handle, false), SC_CLOSE, MF_BYCOMMAND);
92+ //描画(変更を反映)
93+ DUMMY = DrawMenuBar(f.Handle);
94+ }
95+
96+ /// <summary>
97+ /// 自身の exe ファイルの存在するフォルダをフルパスで返す
98+ /// </summary>
99+ /// <returns>戻り値(パス)は最後に '\' 付き</returns>
100+ public static string AppPath()
101+ {
102+ return System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\\";
103+ }
104+
105+ /// <summary>
106+ /// 文字列を渡して先頭から指定した長さだけの文字列を切り出して返す
107+ /// BASICに昔からある Left$ 関数
108+ /// </summary>
109+ /// <param name="str">文字列</param>
110+ /// <param name="len">長さ</param>
111+ /// <returns>切り出した文字列</returns>
112+ public static string Left(string str, int len)
113+ {
114+ if (len < 0)
115+ {
116+ throw new ArgumentException("引数'len'は0以上でなければなりません。");
117+ }
118+ if (str == null)
119+ {
120+ return "";
121+ }
122+ if (str.Length <= len)
123+ {
124+ return str;
125+ }
126+ return str.Substring(0, len);
127+ }
128+
129+ /// <summary>
130+ /// 文字列の末尾から指定した長さの文字列を取得する
131+ /// BASICに昔からある Right$ 関数
132+ /// </summary>
133+ /// <param name="str">文字列</param>
134+ /// <param name="len">長さ</param>
135+ /// <returns>切り出した文字列</returns>
136+ public static string Right(string str, int len)
137+ {
138+ if (len < 0)
139+ {
140+ throw new ArgumentException("引数'len'は0以上でなければなりません。");
141+ }
142+ if (str == null)
143+ {
144+ return "";
145+ }
146+ if (str.Length <= len)
147+ {
148+ return str;
149+ }
150+ return str.Substring(str.Length - len, len);
151+ }
152+ }
153+}
\ No newline at end of file
--- tags/OfficeImageReducer_0402-190321/OfficeImageReducerCS/app.manifest (nonexistent)
+++ tags/OfficeImageReducer_0402-190321/OfficeImageReducerCS/app.manifest (revision 146)
@@ -0,0 +1,71 @@
1+<?xml version="1.0" encoding="utf-8"?>
2+<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
3+ <assemblyIdentity version="1.0.0.0" name="MyApplication.app" />
4+ <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
5+ <security>
6+ <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
7+ <!-- UAC マニフェスト オプション
8+ Windows のユーザー アカウント制御のレベルを変更するには、
9+ requestedExecutionLevel ノードを以下のいずれかで置換します。
10+
11+ <requestedExecutionLevel level="asInvoker" uiAccess="false" />
12+ <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
13+ <requestedExecutionLevel level="highestAvailable" uiAccess="false" />
14+
15+ requestedExecutionLevel 要素を指定すると、ファイルおよびレジストリの仮想化が無効にされます。
16+ アプリケーションが下位互換性を保つためにこの仮想化を要求する場合、この要素を
17+ 削除します。
18+ -->
19+ <requestedExecutionLevel level="asInvoker" uiAccess="false" />
20+ </requestedPrivileges>
21+ </security>
22+ </trustInfo>
23+
24+ <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
25+ <application>
26+ <!-- このアプリケーションがテストされ、動作するよう設計された Windows バージョンの
27+ 一覧。適切な要素をコメント解除すると、最も互換性のある環境を Windows が
28+ 自動的に選択します。-->
29+
30+ <!-- Windows Vista -->
31+ <!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />-->
32+
33+ <!-- Windows 7 -->
34+ <!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />-->
35+
36+ <!-- Windows 8 -->
37+ <!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />-->
38+
39+ <!-- Windows 8.1 -->
40+ <!--<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />-->
41+
42+ <!-- Windows 10 -->
43+ <!--<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />-->
44+ </application>
45+ </compatibility>
46+
47+ <!-- アプリケーションが DPI 対応であり、それ以上の DPI で Windows によって自動的にスケーリングされないことを
48+ 示します。Windows Presentation Foundation (WPF) アプリケーションは自動的に DPI に対応し、オプトインする必要は
49+ ありません。さらに、この設定にオプトインする .NET Framework 4.6 を対象とする Windows Forms アプリケーションは、
50+ app.config ファイルで 'EnableWindowsFormsHighDpiAutoResizing' 設定を 'true' に設定する必要があります。-->
51+ <application xmlns="urn:schemas-microsoft-com:asm.v3">
52+ <windowsSettings>
53+ <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
54+ </windowsSettings>
55+ </application>
56+
57+ <!-- Windows のコモン コントロールとダイアログのテーマを有効にします (Windows XP 以降) -->
58+ <!--
59+ <dependency>
60+ <dependentAssembly>
61+ <assemblyIdentity
62+ type="win32"
63+ name="Microsoft.Windows.Common-Controls"
64+ version="6.0.0.0"
65+ processorArchitecture="*"
66+ publicKeyToken="6595b64144ccf1df"
67+ language="*" />
68+ </dependentAssembly>
69+ </dependency>
70+ -->
71+</assembly>
\ No newline at end of file
--- tags/OfficeImageReducer_0402-190321/OfficeImageReducerCS/ClassLog.cs (nonexistent)
+++ tags/OfficeImageReducer_0402-190321/OfficeImageReducerCS/ClassLog.cs (revision 146)
@@ -0,0 +1,149 @@
1+using System.Windows.Forms;
2+
3+/// <summary>
4+/// ログ処理
5+/// </summary>
6+namespace OfficeImageReducer
7+{
8+ /// <summary>
9+ /// ログを管理するクラス
10+ /// </summary>
11+ public class ClassLog
12+ {
13+ /// <summary>ログを保存するフルパス付ファイル名</summary>
14+ private string LogFileName;
15+
16+ /// <summary>ファイル保存用のログ文字列を確保する</summary>
17+ private string _ShadowBuf;
18+
19+ /// <summary>ログ表示用テキストボックス</summary>
20+ private TextBox _LogTextBox;
21+
22+ /// <summary>
23+ /// コンストラクタ
24+ /// </summary>
25+ /// <param name="LogTextBox">LogTextBox ログ表示用のテキストボックス</param>
26+ public ClassLog(TextBox LogTextBox)
27+ {
28+ _LogTextBox = LogTextBox;
29+ _LogTextBox.Text = "";
30+ _ShadowBuf = "";
31+ LogFileName = ClassMyCommon.AppPath() + ClassMyCommon.TITLE
32+ + "Log" + System.DateTime.Now.ToString("yyMMdd") + ".txt";
33+ }
34+
35+ /// <summary>
36+ /// 他のスレッドからコールする為のデリゲート
37+ /// </summary>
38+ /// <param name="stradd">ログへ追加する文字列</param>
39+ private delegate void Add_Callback(string stradd);
40+
41+ /// <summary>
42+ /// ログに文字列を追加する ログの表示は更新スクロールされない
43+ /// </summary>
44+ /// <param name="stradd">ログへ追加する文字列</param>
45+ public void Add(string stradd)
46+ {
47+ if (stradd == "")
48+ {
49+ //! 文字列がカラなら即終了
50+ return;
51+ }
52+
53+ if (_LogTextBox.InvokeRequired)
54+ {
55+ // 別スレッドから呼び出された場合デリゲートからコールバックさせる
56+ _LogTextBox.Invoke(new Add_Callback(Add), stradd);
57+ return;
58+ }
59+
60+ //! 表示されている古いログは削除する
61+ DeleteOld();
62+
63+ // タイムスタンプ文字列を生成
64+ string TimeStamp = System.DateTime.Now.ToString("MM/dd HH:mm:ss : ");
65+ // ログ追加文字列の先頭にタイムスタンプを追加
66+ stradd = TimeStamp + stradd;
67+
68+ // ログ追加文字列の最後尾に "\r\n" があった場合は、いったん削除する
69+ if (stradd.Substring(stradd.Length - "\r\n".Length, "\r\n".Length) == "\r\n")
70+ {
71+ stradd = stradd.Substring(0, stradd.Length - "\r\n".Length);
72+ }
73+
74+ // ログ追加文字列の中に "\r\n" があった場合は、"\r\n+タイムスタンプ" に置換する
75+ stradd = stradd.Replace("\r\n", "\r\n" + TimeStamp);
76+
77+ // ログ追加文字列の最後尾に "\r\n" を追加
78+ stradd += "\r\n";
79+
80+ // 加工したログ追加文字列を保存用文字列とテキストボックスへ追加
81+ _LogTextBox.Text += stradd;
82+ _ShadowBuf += stradd;
83+ }
84+
85+ /// <summary>
86+ /// 他のスレッドからコールする為のデリゲート
87+ /// </summary>
88+ /// <param name="stradd">ログへ追加する文字列</param>
89+ private delegate void Put_Callback(string stradd);
90+
91+ /// <summary>
92+ /// ログに文字列を追加しログ表示を最下行へ強制スクロールする
93+ /// </summary>
94+ /// <param name="stradd">ログへ追加する文字列</param>
95+ public void Put(string stradd)
96+ {
97+ if (_LogTextBox.InvokeRequired)
98+ {
99+ // 別スレッドから呼び出された場合デリゲートからコールバックさせる
100+ _LogTextBox.Invoke(new Put_Callback(Put), stradd);
101+ return;
102+ }
103+
104+ // ログ追加
105+ Add(stradd);
106+
107+ // ログ表示を最下行へスクロールする。
108+ _LogTextBox.SelectionStart = _LogTextBox.Text.Length;
109+ _LogTextBox.ScrollToCaret();
110+ }
111+
112+ /// <summary>
113+ /// ログをファイルに保存
114+ /// </summary>
115+ public void Save()
116+ {
117+#if false
118+ using (StreamWriter sw = new StreamWriter(
119+ LogFileName,
120+ true,
121+ System.Text.Encoding.GetEncoding("shift-jis")))
122+ {
123+ // ファイルへの書き込み
124+ sw.Write(_ShadowBuf);
125+ }
126+#endif
127+ }
128+
129+ /// <summary>
130+ /// ログ表示部から古いログを削除 削除されるのは表示部のみ。保存用文字列からは削除しない。
131+ /// </summary>
132+ private void DeleteOld()
133+ {
134+ //! ログ表示量が MaxLength-1024 より大きくなったら破棄する
135+ if (_LogTextBox.Text.Length > (_LogTextBox.MaxLength - 1024))
136+ {
137+ _LogTextBox.Text = _LogTextBox.Text.Substring(_LogTextBox.MaxLength / 2);
138+ }
139+ }
140+
141+ /// <summary>
142+ /// ログ表示部からログをすべて削除 削除されるのは表示部のみ。ファイル保存用文字列からは削除しない。
143+ /// </summary>
144+ public void Clear()
145+ {
146+ _LogTextBox.Text = "";
147+ }
148+ }
149+}
\ No newline at end of file
--- tags/OfficeImageReducer_0402-190321/OfficeImageReducerCS/FormMain.cs (nonexistent)
+++ tags/OfficeImageReducer_0402-190321/OfficeImageReducerCS/FormMain.cs (revision 146)
@@ -0,0 +1,668 @@
1+using System;
2+using System.Drawing;
3+using System.IO;
4+using System.IO.Compression;
5+using System.Text;
6+using System.Windows.Forms;
7+using static OfficeImageReducer.ClassMyCommon;
8+
9+/// <summary>
10+/// メインフォームに関する処理
11+/// </summary>
12+namespace OfficeImageReducer
13+{
14+ /// <summary>
15+ /// メインウインドウフォーム
16+ /// </summary>
17+ public partial class FormMain : Form
18+ {
19+ /// <summary>
20+ /// ZIP解凍用の一時ファイルネーム
21+ /// </summary>
22+ private string ZipFileName;
23+
24+ /// <summary>
25+ /// ZIP解凍用の一時解凍先フォルダネーム
26+ /// </summary>
27+ private string ExtractPath;
28+
29+ /// <summary>
30+ /// コンストラクタ
31+ /// </summary>
32+ public FormMain()
33+ {
34+ InitializeComponent();
35+ }
36+
37+ /// <summary>
38+ /// フォームロードイベント
39+ /// </summary>
40+ /// <param name="sender">イベントを発生させたオブジェクトへの参照</param>
41+ /// <param name="e">処理されるイベントに応じた特定のオブジェクト</param>
42+ private void FormMain_Load(object sender, EventArgs e)
43+ {
44+#if false
45+ // 多重起動チェック
46+ //Process.GetProcessesByName メソッド
47+ //指定したプロセス名を共有するリモートコンピュータ上の
48+ //すべてのプロセスリソースに関連付けます。
49+ string pn = System.Diagnostics.Process.GetCurrentProcess().ProcessName; //Process.ProcessName プロパティ(プロセスの名前を取得します)
50+ if (System.Diagnostics.Process.GetProcessesByName(pn).GetUpperBound(0) > 0)
51+ {
52+ //! 多重起動しているならばエラーメッセージ表示して終了
53+ MessageBox.Show("すでに起動しています。", TITLE + " エラーメッセージ",
54+ MessageBoxButtons.OK,
55+ MessageBoxIcon.Error);
56+ Environment.Exit(0);
57+ }
58+#endif
59+ frmMain = this;
60+ //! フォームの右上ボタンと左上の右クリックメニューをカスタマイズ
61+ FormControlBoxCustomize(this);
62+ Log = new ClassLog(textBox1);
63+ this.Text = TITLE + " " + VERSION;
64+ //! オープニングメッセージを表示
65+ button1.PerformClick();
66+ // 表示開始後0.5秒は最前面にもってくる
67+ Show();
68+ TopMost = true;
69+ WaitTickCount(500);
70+ TopMost = false;
71+ }
72+
73+ /// <summary>
74+ /// [About]ボタンクリックイベント
75+ /// プログラムタイトル バージョン オープニングメッセージを表示
76+ /// </summary>
77+ /// <param name="sender">イベントを発生させたオブジェクトへの参照</param>
78+ /// <param name="e">処理されるイベントに応じた特定のオブジェクト</param>
79+ private void button1_Click(object sender, EventArgs e)
80+ {
81+ Log.Put(
82+ "----------------------------------------------------------------\r\n"
83+ + TITLE + " " + VERSION + "\r\n"
84+ + OPENING_MSG
85+ + "\r\n"
86+ + "----------------------------------------------------------------\r\n"
87+ );
88+ }
89+
90+ /// <summary>
91+ /// [Clear Log]ボタンクリックイベント
92+ /// </summary>
93+ /// <param name="sender">イベントを発生させたオブジェクトへの参照</param>
94+ /// <param name="e">処理されるイベントに応じた特定のオブジェクト</param>
95+ private void button2_Click(object sender, EventArgs e)
96+ {
97+ Log.Clear();
98+ }
99+
100+ /// <summary>
101+ /// [Quit]ボタンクリックイベント
102+ /// </summary>
103+ /// <param name="sender">イベントを発生させたオブジェクトへの参照</param>
104+ /// <param name="e">処理されるイベントに応じた特定のオブジェクト</param>
105+ private void button3_Click(object sender, EventArgs e)
106+ {
107+ Close();
108+ }
109+
110+ /// <summary>
111+ /// ログテキストエリアのドラッグエンターイベント
112+ /// ドラッグエンターされたものがファイルの場合のみ、ドラッグを受け付ける
113+ /// </summary>
114+ /// <param name="sender">イベントを発生させたオブジェクトへの参照</param>
115+ /// <param name="e">処理されるイベントに応じた特定のオブジェクト</param>
116+ private void textBox1_DragEnter(object sender, DragEventArgs e)
117+ {
118+ if (e.Data.GetDataPresent(DataFormats.FileDrop) == true)
119+ {
120+ e.Effect = DragDropEffects.Copy;
121+ }
122+ else
123+ {
124+ e.Effect = DragDropEffects.None;
125+ }
126+ }
127+
128+ /// <summary>
129+ /// ドロップされた時の処理
130+ /// </summary>
131+ /// <param name="sender">イベントを発生させたオブジェクトへの参照</param>
132+ /// <param name="e">処理されるイベントに応じた特定のオブジェクト</param>
133+ private void textBox1_DragDrop(object sender, DragEventArgs e)
134+ {
135+ Color textBox1BackColor = textBox1.BackColor;
136+
137+ //! 作業中はさらにドラッグ&ドロップできないようにする
138+ textBox1.Enabled = false;
139+ textBox1.BackColor = this.BackColor;
140+
141+ //! ドラッグされたファイル・フォルダのパスを格納
142+ string[] strFileNames = (string[])e.Data.GetData(DataFormats.FileDrop, false);
143+
144+ //! ひとつずつoffice2007ファイルをメイン処理に渡す。
145+ foreach (string strFileName in strFileNames)
146+ {
147+ Main_Process(strFileName);
148+ WaitTickCount(100);
149+ }
150+
151+ textBox1.Enabled = true;
152+ textBox1.BackColor = textBox1BackColor;
153+ }
154+
155+ /// <summary>
156+ /// フォルダを再帰的に下りて全ファイルの属性を削除
157+ /// </summary>
158+ /// <param name="dirInfo">dirInfo フォルダ操作用インスタンス</param>
159+ private void RemoveReadonlyAttribute(DirectoryInfo dirInfo)
160+ {
161+ try
162+ {
163+ //基のフォルダの属性を変更
164+ if ((dirInfo.Attributes & FileAttributes.ReadOnly) ==
165+ FileAttributes.ReadOnly)
166+ dirInfo.Attributes = FileAttributes.Normal;
167+ //フォルダ内のすべてのファイルの属性を変更
168+ foreach (FileInfo fi in dirInfo.GetFiles())
169+ if ((fi.Attributes & FileAttributes.ReadOnly) ==
170+ FileAttributes.ReadOnly)
171+ fi.Attributes = FileAttributes.Normal;
172+ //サブフォルダの属性を回帰的に変更
173+ foreach (DirectoryInfo di in dirInfo.GetDirectories())
174+ RemoveReadonlyAttribute(di);
175+ }
176+ catch (Exception ex)
177+ {
178+ Log.Put("Error:RemoveReadonlyAttribute():ex.Message\r\n" + ex.Message);
179+ Log.Put("Error:RemoveReadonlyAttribute():ex.StacTrace\r\n" + ex.StackTrace);
180+ }
181+ }
182+
183+ /// <summary>
184+ /// 作業終了後のクリーンアップ処理
185+ /// 作業用フォルダとZIPが残っていれば削除
186+ /// </summary>
187+ private void CleanUp()
188+ {
189+ if (ExtractPath != "")
190+ {
191+ try
192+ {
193+ if (Directory.Exists(ExtractPath))
194+ {
195+ //DirectoryInfoオブジェクトの作成
196+ DirectoryInfo di = new DirectoryInfo(ExtractPath);
197+
198+ //フォルダ以下のすべてのファイル、フォルダの属性を削除
199+ RemoveReadonlyAttribute(di);
200+
201+ //フォルダを根こそぎ削除
202+ //di.Delete(true);
203+ Directory.Delete(ExtractPath, true);
204+ }
205+ }
206+ catch (Exception ex)
207+ {
208+ Log.Put("Error:CleanUp():ex.Message\r\n" + ex.Message);
209+ Log.Put("Error:CleanUp():ex.StacTrace\r\n" + ex.StackTrace);
210+ }
211+ }
212+
213+ if (ZipFileName != null)
214+ {
215+ File.Delete(ZipFileName);
216+ }
217+ }
218+
219+ /// <summary>
220+ /// PNGファイルの中に透明色(tRNSチャンク)透過色(αチャンネル)があるか判定する
221+ /// </summary>
222+ /// <param name="PngFileName">フルパス付きPNGファイルネーム</param>
223+ /// <returns>0:透明色透過色なし 1:tRNSチャンク透明色あり 2:αチャンネル透過色あり</returns>
224+ private int PngTransCheck(string PngFileName)
225+ {
226+ //Log.Put("tRNS Chunk Check:" + PngFileName);
227+ string[] StrArray;
228+ StrArray = PngFileName.Split('\\');
229+ string SplitPngFileName = StrArray[StrArray.Length - 1];
230+
231+ int fileSize = 0; //ファイルのサイズ
232+ int bufPos = 0; //データ格納用配列内の追加位置
233+ Byte[] buf = null; //データ格納用配列を仮確保
234+ //Array.Resize(ref buf, 1);
235+
236+ using (FileStream fs = new FileStream(PngFileName, FileMode.Open, FileAccess.Read))
237+ {
238+ fileSize = (int)fs.Length; //ファイルのサイズ
239+ Array.Resize(ref buf, fileSize); //データ格納用配列サイズ決定
240+
241+ int readSize; //Readメソッドで読み込んだバイト数
242+ int remain = fileSize; //読み込むべき残りのバイト数
243+
244+ while (remain > 0)
245+ {
246+ //1024Bytesずつ読み込む
247+ readSize = fs.Read(buf, bufPos, Math.Min(1024, remain));
248+ bufPos += readSize;
249+ remain -= readSize;
250+ }
251+ }
252+
253+ //buf[] をチェック
254+ bufPos = 8; //8byte目から確認
255+ int ChunkSize;
256+ while (bufPos < fileSize)
257+ {
258+ ChunkSize = (buf[bufPos] << 24) + (buf[bufPos + 1] << 16) + (buf[bufPos + 2] << 8) + buf[bufPos + 3];
259+ //Log.Put("chunksize=" + ChunkSize.ToString);
260+ bufPos += 4;
261+ if (buf[bufPos] == 't' && buf[bufPos + 1] == 'R'
262+ && buf[bufPos + 2] == 'N' && buf[bufPos + 3] == 'S')
263+ {
264+ Log.Put("tRNSチャンクを検出しました。透明色があります。");
265+ Log.Put("tRNS chunk was detected. There is a transparent color.");
266+ //Log.Put(SplitPngFileName + " has tRNS chunk.");
267+ return 1;
268+ }
269+ bufPos += 4;
270+ bufPos += ChunkSize;
271+ bufPos += 4;
272+ }
273+
274+ // PNG(BMP)ファイルオープン
275+ using (Bitmap bmp = new Bitmap(PngFileName))
276+ {
277+ if (bmp.PixelFormat == System.Drawing.Imaging.PixelFormat.Format32bppArgb
278+ || bmp.PixelFormat == System.Drawing.Imaging.PixelFormat.Format32bppPArgb)
279+ {
280+ //アルファチャンネルのあるPNGフォーマット
281+
282+ System.Drawing.Imaging.BitmapData bmpdat;
283+
284+ bmpdat = bmp.LockBits(new Rectangle(Point.Empty, bmp.Size),
285+ System.Drawing.Imaging.ImageLockMode.ReadOnly, bmp.PixelFormat);
286+
287+ Array.Resize(ref buf, bmp.Width * bmp.Height * 4); //データ格納用配列サイズ決定
288+ System.Runtime.InteropServices.Marshal.Copy(bmpdat.Scan0, buf, 0, buf.Length);
289+ int PixelX;
290+ int PixelY;
291+
292+ for (PixelY = 0; PixelY < bmp.Height; PixelY++)
293+ {
294+ Application.DoEvents();
295+ for (PixelX = 0; PixelX < bmp.Width; PixelX++)
296+ {
297+ Byte Alpha; //αチャンネル 0:透明 ~ 255:完全不透明
298+ Byte Red;
299+ Byte Green;
300+ Byte Blue;
301+
302+ Alpha = buf[(PixelY * bmp.Width + PixelX) * 4 + 3];
303+ Red = buf[(PixelY * bmp.Width + PixelX) * 4 + 2];
304+ Green = buf[(PixelY * bmp.Width + PixelX) * 4 + 1];
305+ Blue = buf[(PixelY * bmp.Width + PixelX) * 4 + 0];
306+ if (Alpha < 255)
307+ {
308+ Log.Put("αチャンネルを検出しました。透過色があります。");
309+ Log.Put("Alpha channel was detected. There is a transparent color.");
310+ //Log.Put(SplitPngFileName + " has alpha chunnel.");
311+ //Log.Put("X,Y ARGB = " + PixelX + "," + PixelY + "," + Alpha + "," + Red + "," + Green + "," + Blue);
312+ //!αチャンネル255未満を検出したら1を返す (0:透明 ~ 255:完全不透明)
313+ return 2;
314+ }
315+ }
316+ }
317+ }
318+ }
319+
320+ return 0;
321+ }
322+
323+ /// <summary>
324+ /// メイン処理
325+ /// </summary>
326+ /// <param name="OrgFileName">Office2007形式のフルパス付ファイルネーム</param>
327+ private void Main_Process(string OrgFileName)
328+ {
329+ //! ファイルの存在確認を行い、なければ終了。引数がフォルダ名だった場合も終了
330+ if (File.Exists(OrgFileName) == false)
331+ {
332+ return;
333+ }
334+
335+ // ログにパスを表示
336+ Log.Put("====================");
337+ Log.Put(OrgFileName);
338+ Application.DoEvents();
339+
340+ // PNGからJPGへ変換されたファイル数
341+ UInt32 JPGcount = 0;
342+ // ZIP解凍用の一時ファイルネーム
343+ ZipFileName = Path.GetDirectoryName(OrgFileName) + "\\~OfficeImgRedTemp.zip";
344+ // ZIP解凍用の一時解凍先フォルダネーム
345+ ExtractPath = Path.GetDirectoryName(OrgFileName) + "\\~OfficeImgRedExtract";
346+ // Office2007系ファイルの中にあるコンテンツの管理ファイル
347+ string CurrentTypesFileName = ExtractPath + "\\[Content_Types].xml";
348+
349+ CleanUp();
350+
351+ //! office2007ファイルでなければ終了
352+ string FileExtension = OrgFileName.Substring(OrgFileName.Length - 5).ToLower();
353+ if ((FileExtension != ".xlsx") &&
354+ (FileExtension != ".xlsm") &&
355+ (FileExtension != ".pptx") &&
356+ (FileExtension != ".pptm") &&
357+ (FileExtension != ".docx") &&
358+ (FileExtension != ".docm"))
359+ {
360+ Log.Put("office2007 ファイル以外には対応していません。");
361+ Log.Put("It is not a OFFICE2007 file.");
362+ return;
363+ }
364+
365+ // ファイルの拡張子をピリオドなしで格納
366+ FileExtension = OrgFileName.Substring(OrgFileName.Length - 4).ToLower();
367+
368+ Log.Put("analyzing...");
369+
370+ try
371+ {
372+ // 前の処理の残骸残っていればクリーンナップ
373+ CleanUp();
374+
375+ //! office2007ファイルをZIPファイルへリネームコピー
376+ File.Copy(OrgFileName, ZipFileName);
377+ // ZIP解凍作業用フォルダ作成
378+ try
379+ {
380+ Directory.CreateDirectory(ExtractPath);
381+ }
382+ catch (Exception ex)
383+ {
384+ Log.Put("作業用フォルダの作成に失敗しました。:" + ex.Message);
385+ }
386+
387+ // ZIP解凍
388+ // リューション エクスプローラー内、[参照設定] から
389+ // ZipFile クラスを含む DLL(System.IO.Compression.FileSystem.dll) を手動で追加すること
390+ ZipFile.ExtractToDirectory(ZipFileName, ExtractPath, Encoding.GetEncoding("shift_jis"));
391+
392+ // 解凍したZIPの中に [Content_Types].xml があるかどうか確認する。
393+ if (!(File.Exists(CurrentTypesFileName)))
394+ {
395+ // 存在しないならクリーンアップして終了。
396+ Log.Put("対象ファイルの解析ができません。");
397+ CleanUp();
398+ return;
399+ }
400+
401+ // PNGを格納しているパス
402+ string MediaPath;
403+ if (Directory.Exists(ExtractPath + "\\xl\\media\\"))
404+ {
405+ MediaPath = ExtractPath + "\\xl\\media";
406+ }
407+ else if (Directory.Exists(ExtractPath + "\\ppt\\media\\"))
408+ {
409+ MediaPath = ExtractPath + "\\ppt\\media";
410+ }
411+ else if (Directory.Exists(ExtractPath + "\\word\\media\\"))
412+ {
413+ MediaPath = ExtractPath + "\\word\\media";
414+ }
415+ else
416+ {
417+ Log.Put("ファイルの中にメディア格納フォルダがありません。");
418+ Log.Put("There is no media folder in the file.");
419+ CleanUp();
420+ return;
421+ }
422+
423+ // フルパス付PNGファイル名
424+ string[] MediaFileNames = Directory.GetFiles(MediaPath, "*.png");
425+ if (MediaFileNames.Length == 0)
426+ {
427+ Log.Put("ファイルの中にPNG(BMP)ファイルがありません。");
428+ Log.Put("There is no PNG(BMP) in the file.");
429+ CleanUp();
430+ return;
431+ }
432+#if false
433+ foreach (string MediaFileName in MediaFileNames)
434+ {
435+ Log.Put(MediaFileName);
436+ }
437+#endif
438+ // *.rels リレーションファイルすべてをリストアップ
439+ string[] RelsFileNames = Directory.GetFiles(ExtractPath, "*.rels", SearchOption.AllDirectories);
440+#if false
441+ foreach (string RelsFileName in RelsFileNames)
442+ {
443+ Log.Put(RelsFileName);
444+ }
445+#endif
446+ // 作業用文字列の配列
447+ string[] StrArray;
448+ // ファイル読み出しデータ格納用文字列
449+ string Result = String.Empty;
450+
451+ // 取得したPNGファイルの処理をする
452+ foreach (string MediaFileName in MediaFileNames)
453+ {
454+ StrArray = MediaFileName.Split('\\');
455+ // パスなしPNGファイル名を格納
456+ string SplitMediaFileName = StrArray[StrArray.Length - 1];
457+ Log.Put("---");
458+ Log.Put(SplitMediaFileName);
459+
460+ // PNGファイルのサイズを取得
461+ long Medialen = new FileInfo(MediaFileName).Length;
462+
463+ // 作業用JPGファイル
464+ string TmpJpgFileName = MediaPath + "~OfficeImgRedtemp.jpg";
465+
466+ //PNGファイルを開く
467+ try
468+ {
469+ //前回の作業ファイルが残っていれば削除する
470+ File.Delete(TmpJpgFileName);
471+
472+ //PNGに透過透明がある場合はJPG化せず、次のPNGファイルを処理する
473+ if (0 != PngTransCheck(MediaFileName))
474+ {
475+ //Log.Put("透過色");
476+ continue;
477+ }
478+ // PNG(BMP)ファイルオープン
479+ using (Bitmap bmp = new Bitmap(MediaFileName))
480+ {
481+ //JPEG形式で保存する
482+ bmp.Save(TmpJpgFileName, System.Drawing.Imaging.ImageFormat.Jpeg);
483+ }
484+ }
485+ catch
486+ {
487+ // 不正なBMP/PNGであればオープン時に例外が発生する。
488+ File.Delete(TmpJpgFileName);
489+ // 次のPNGファイルの処理へ
490+ continue;
491+ }
492+
493+ // 生成されたJPGファイルサイズを格納
494+ long Jpglen = new FileInfo(TmpJpgFileName).Length;
495+
496+ // 生成されたJPGファイルがもとのPNGより20%以上縮小された場合はJPGを採用する
497+ if (Jpglen > (Medialen * 0.8))
498+ {
499+ // 生成されたJPGファイルがもとのPNGより20%以上縮小されなかった場合
500+ Log.Put("JPG化してもサイズが小さくなりませんでした。");
501+ Log.Put("The data size was not become smaller.");
502+ File.Delete(TmpJpgFileName);
503+ }
504+ else
505+ {
506+ // 生成されたJPGファイルがもとのPNGより20%以上縮小された場合
507+ // フルパス付JPGファイル名
508+ string NewMediaFileName = "";
509+ int j;
510+ for (j = 0; ; j++)
511+ {
512+ // フルパス付JPGファイル名候補を格納
513+ if (j == 0)
514+ {
515+ NewMediaFileName = MediaFileName.Substring(0, MediaFileName.Length - 4) + ".jpeg";
516+ }
517+ else
518+ {
519+ NewMediaFileName = MediaFileName.Substring(0, MediaFileName.Length - 4) + "(" + (j - 1).ToString() + ").jpeg";
520+ }
521+
522+ // 一時ファイネームのJPGを正式なファイル名に変更する。
523+ if (File.Exists(NewMediaFileName) == true)
524+ {
525+ // JPGファイルネームがかぶった場合は9999回までリトライするが、それでもだめだった場合はあきらめる
526+ if (j > 9999)
527+ {
528+ break;
529+ }
530+
531+ // JPGファイルネームがかぶった場合はリトライ
532+ continue;
533+ }
534+ else
535+ {
536+ // リネームする
537+ File.Move(TmpJpgFileName, NewMediaFileName);
538+ // もとからあったPNGファイルを削除
539+ File.Delete(MediaFileName);
540+ break; // forループ脱出
541+ }
542+ }
543+ if (j > 9999)
544+ {
545+ // 9999回までリトライしてだめならあきらめて次のPNGファイルを処理する。
546+ File.Delete(TmpJpgFileName);
547+ continue;
548+ }
549+
550+ StrArray = NewMediaFileName.Split('\\');
551+ // フルパスなしJPGファイル名を格納
552+ string SplitNewMediaFileName = StrArray[StrArray.Length - 1];
553+ //Log.Put(SplitMediaFileName + " was converted to " + SplitNewMediaFileName + ".");
554+ Log.Put(SplitMediaFileName.Split('.')[0] + " was converted to JPG.");
555+ // JPGに変換したPNGファイルの数をカウント
556+ JPGcount = JPGcount + 1;
557+
558+ Application.DoEvents(); //ログ表示更新の為
559+
560+ // リレーションファイル内のPNGファイル名をJPGファイル名にする
561+ foreach (string RelsFileName in RelsFileNames)
562+ {
563+ // リレーションファイルの中身を読みだす
564+ Result = String.Empty;
565+ using (StreamReader Reader = new StreamReader(RelsFileName, Encoding.GetEncoding("shift-jis")))
566+ {
567+ Result = Reader.ReadToEnd();
568+ //Log.Put(Result);
569+ }
570+
571+ // リレーションファイルの中にPNGファイルネームがある場合はJPGファイルネームに置換して上書き
572+ if (Result.IndexOf(SplitMediaFileName) >= 0)
573+ {
574+ //Log.Put(Result);
575+ Result = Result.Replace(SplitMediaFileName, SplitNewMediaFileName);
576+ //上書モードでリレーションファイルを開く
577+ using (StreamWriter Writer = new StreamWriter(RelsFileName, false, Encoding.GetEncoding("shift-jis")))
578+ {
579+ // リレーションファイル上書き
580+ Writer.Write(Result);
581+ //Log.Put(Result);
582+ }
583+ }
584+ }
585+ }
586+ }
587+
588+ if (JPGcount == 0)
589+ {
590+ Log.Put("JPG化すべきデータはありませんでした。");
591+ Log.Put("There is no image data to be converted to JPG.");
592+ return;
593+ }
594+
595+ // ExtractPath + "\[Content_Types].xml の中に拡張子jpegを追記する
596+ Result = String.Empty;
597+ using (StreamReader Reader = new StreamReader(CurrentTypesFileName, Encoding.GetEncoding("shift-jis")))
598+ {
599+ Result = Reader.ReadToEnd();
600+ }
601+ //追加する文字列 <Default Extension="jpeg" ContentType="application/jpeg"/>
602+ if (Result.ToLower().IndexOf("default extension=\"jpeg\"") >= 0)
603+ {
604+ //すでに拡張子jpegが登録されているので変更不要
605+ }
606+ else
607+ {
608+ Result = Result.Replace(
609+ "<Default Extension=\"xml\" ContentType=\"application/xml\"/>",
610+ "<Default Extension=\"xml\" ContentType=\"application/xml\"/><Default Extension=\"jpeg\" ContentType=\"application/jpeg\"/>");
611+ //上書モードでShift-JISファイルを開く
612+ using (StreamWriter Writer = new System.IO.StreamWriter(CurrentTypesFileName, false, Encoding.GetEncoding("shift-jis")))
613+ {
614+ Writer.Write(Result);
615+ //Log.Put(Result);
616+ }
617+ }
618+
619+ // 再圧縮する前に、JPEG化まえのZIP書庫を削除する
620+ File.Delete(ZipFileName);
621+
622+ // ZIP書庫を作成する サイズ優先
623+ //ZipFile.CreateFromDirectory(ExtractPath, ZipFileName, CompressionLevel.Optimal, false, Encoding.GetEncoding("shift_jis"));
624+ // ZIP書庫を作成する 処理速度優先
625+ ZipFile.CreateFromDirectory(ExtractPath, ZipFileName, CompressionLevel.Fastest, false, Encoding.GetEncoding("shift_jis"));
626+
627+ // 圧縮前の office2007 ファイルをリネームする 例 aaaa.xlsx -> aaaa(0).xlsx
628+ for (int i = 0; ; i++)
629+ {
630+ // リネームするファイル名
631+ string NewOrgFileName
632+ = OrgFileName.Substring(0, OrgFileName.Length - 5) + "(" + i.ToString() + ")" + OrgFileName.Substring(OrgFileName.Length - 5);
633+
634+ if (i >= 10000)
635+ {
636+ File.Delete(NewOrgFileName);
637+ }
638+
639+ if (File.Exists(NewOrgFileName) == true)
640+ {
641+ // ファイルの存在確認を行い、すでに存在すれば、リトライ
642+ continue;
643+ }
644+ else
645+ {
646+ // リネーム処理して終了
647+ File.Move(OrgFileName, NewOrgFileName);
648+ break;
649+ }
650+ }
651+
652+ // 一時ZIPファイルネームをもとのoffice2007ファイルネームにする。
653+ File.Move(ZipFileName, OrgFileName);
654+ Log.Put("作業終了しました。");
655+ Log.Put("It is finished.");
656+ }
657+ catch (Exception ex)
658+ {
659+ Log.Put("Error:Main_Process():ex.Message\r\n" + ex.Message);
660+ Log.Put("Error:CleanUp():ex.StacTrace\r\n" + ex.StackTrace);
661+ }
662+ finally
663+ {
664+ CleanUp();
665+ }
666+ }
667+ }
668+}
\ No newline at end of file
--- tags/OfficeImageReducer_0402-190321/OfficeImageReducerCS/FormMain.Designer.cs (nonexistent)
+++ tags/OfficeImageReducer_0402-190321/OfficeImageReducerCS/FormMain.Designer.cs (revision 146)
@@ -0,0 +1,116 @@
1+namespace OfficeImageReducer
2+{
3+ partial class FormMain
4+ {
5+ /// <summary>
6+ /// 必要なデザイナー変数です。
7+ /// </summary>
8+ private System.ComponentModel.IContainer components = null;
9+
10+ /// <summary>
11+ /// 使用中のリソースをすべてクリーンアップします。
12+ /// </summary>
13+ /// <param name="disposing">マネージ リソースを破棄する場合は true を指定し、その他の場合は false を指定します。</param>
14+ protected override void Dispose(bool disposing)
15+ {
16+ if (disposing && (components != null))
17+ {
18+ components.Dispose();
19+ }
20+ base.Dispose(disposing);
21+ }
22+
23+ #region Windows フォーム デザイナーで生成されたコード
24+
25+ /// <summary>
26+ /// デザイナー サポートに必要なメソッドです。このメソッドの内容を
27+ /// コード エディターで変更しないでください。
28+ /// </summary>
29+ private void InitializeComponent()
30+ {
31+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormMain));
32+ this.textBox1 = new System.Windows.Forms.TextBox();
33+ this.button1 = new System.Windows.Forms.Button();
34+ this.button2 = new System.Windows.Forms.Button();
35+ this.button3 = new System.Windows.Forms.Button();
36+ this.SuspendLayout();
37+ //
38+ // textBox1
39+ //
40+ this.textBox1.AllowDrop = true;
41+ this.textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
42+ | System.Windows.Forms.AnchorStyles.Left)
43+ | System.Windows.Forms.AnchorStyles.Right)));
44+ this.textBox1.Location = new System.Drawing.Point(12, 12);
45+ this.textBox1.Multiline = true;
46+ this.textBox1.Name = "textBox1";
47+ this.textBox1.ScrollBars = System.Windows.Forms.ScrollBars.Both;
48+ this.textBox1.Size = new System.Drawing.Size(510, 207);
49+ this.textBox1.TabIndex = 0;
50+ this.textBox1.WordWrap = false;
51+ this.textBox1.DragDrop += new System.Windows.Forms.DragEventHandler(this.textBox1_DragDrop);
52+ this.textBox1.DragEnter += new System.Windows.Forms.DragEventHandler(this.textBox1_DragEnter);
53+ //
54+ // button1
55+ //
56+ this.button1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
57+ this.button1.Location = new System.Drawing.Point(12, 225);
58+ this.button1.Name = "button1";
59+ this.button1.Size = new System.Drawing.Size(104, 27);
60+ this.button1.TabIndex = 1;
61+ this.button1.Text = "About";
62+ this.button1.UseVisualStyleBackColor = true;
63+ this.button1.Click += new System.EventHandler(this.button1_Click);
64+ //
65+ // button2
66+ //
67+ this.button2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
68+ | System.Windows.Forms.AnchorStyles.Right)));
69+ this.button2.Location = new System.Drawing.Point(122, 225);
70+ this.button2.Name = "button2";
71+ this.button2.Size = new System.Drawing.Size(279, 27);
72+ this.button2.TabIndex = 2;
73+ this.button2.Text = "Clear Log";
74+ this.button2.UseVisualStyleBackColor = true;
75+ this.button2.Click += new System.EventHandler(this.button2_Click);
76+ //
77+ // button3
78+ //
79+ this.button3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
80+ this.button3.Location = new System.Drawing.Point(407, 225);
81+ this.button3.Name = "button3";
82+ this.button3.Size = new System.Drawing.Size(115, 27);
83+ this.button3.TabIndex = 3;
84+ this.button3.Text = "Quit";
85+ this.button3.UseVisualStyleBackColor = true;
86+ this.button3.Click += new System.EventHandler(this.button3_Click);
87+ //
88+ // FormMain
89+ //
90+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
91+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
92+ this.ClientSize = new System.Drawing.Size(534, 261);
93+ this.Controls.Add(this.button3);
94+ this.Controls.Add(this.button2);
95+ this.Controls.Add(this.button1);
96+ this.Controls.Add(this.textBox1);
97+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
98+ this.MinimumSize = new System.Drawing.Size(400, 150);
99+ this.Name = "FormMain";
100+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
101+ this.Text = "FormMain";
102+ this.Load += new System.EventHandler(this.FormMain_Load);
103+ this.ResumeLayout(false);
104+ this.PerformLayout();
105+
106+ }
107+
108+ #endregion
109+
110+ private System.Windows.Forms.TextBox textBox1;
111+ private System.Windows.Forms.Button button1;
112+ private System.Windows.Forms.Button button2;
113+ private System.Windows.Forms.Button button3;
114+ }
115+}
116+
--- tags/OfficeImageReducer_0402-190321/OfficeImageReducerCS/Properties/AssemblyInfo.cs (nonexistent)
+++ tags/OfficeImageReducer_0402-190321/OfficeImageReducerCS/Properties/AssemblyInfo.cs (revision 146)
@@ -0,0 +1,36 @@
1+using System.Reflection;
2+using System.Runtime.CompilerServices;
3+using System.Runtime.InteropServices;
4+
5+// アセンブリに関する一般情報は以下の属性セットをとおして制御されます。
6+// アセンブリに関連付けられている情報を変更するには、
7+// これらの属性値を変更してください。
8+[assembly: AssemblyTitle("")]
9+[assembly: AssemblyDescription("")]
10+[assembly: AssemblyConfiguration("")]
11+[assembly: AssemblyCompany("")]
12+[assembly: AssemblyProduct("")]
13+[assembly: AssemblyCopyright("")]
14+[assembly: AssemblyTrademark("")]
15+[assembly: AssemblyCulture("")]
16+
17+// ComVisible を false に設定すると、このアセンブリ内の型は COM コンポーネントから
18+// 参照できなくなります。COM からこのアセンブリ内の型にアクセスする必要がある場合は、
19+// その型の ComVisible 属性を true に設定してください。
20+[assembly: ComVisible(false)]
21+
22+// このプロジェクトが COM に公開される場合、次の GUID が typelib の ID になります
23+[assembly: Guid("190d3215-8be6-429c-be2a-8883381105a2")]
24+
25+// アセンブリのバージョン情報は次の 4 つの値で構成されています:
26+//
27+// メジャー バージョン
28+// マイナー バージョン
29+// ビルド番号
30+// Revision
31+//
32+// すべての値を指定するか、次を使用してビルド番号とリビジョン番号を既定に設定できます
33+// 既定値にすることができます:
34+// [assembly: AssemblyVersion("1.0.*")]
35+[assembly: AssemblyVersion("1.0.0.0")]
36+[assembly: AssemblyFileVersion("1.0.0.0")]
--- tags/OfficeImageReducer_0402-190321/OfficeImageReducerCS/Properties/Resources.Designer.cs (nonexistent)
+++ tags/OfficeImageReducer_0402-190321/OfficeImageReducerCS/Properties/Resources.Designer.cs (revision 146)
@@ -0,0 +1,63 @@
1+//------------------------------------------------------------------------------
2+// <auto-generated>
3+// このコードはツールによって生成されました。
4+// ランタイム バージョン:4.0.30319.42000
5+//
6+// このファイルへの変更は、以下の状況下で不正な動作の原因になったり、
7+// コードが再生成されるときに損失したりします。
8+// </auto-generated>
9+//------------------------------------------------------------------------------
10+
11+namespace OfficeImageReducer.Properties {
12+ using System;
13+
14+
15+ /// <summary>
16+ /// ローカライズされた文字列などを検索するための、厳密に型指定されたリソース クラスです。
17+ /// </summary>
18+ // このクラスは StronglyTypedResourceBuilder クラスが ResGen
19+ // または Visual Studio のようなツールを使用して自動生成されました。
20+ // メンバーを追加または削除するには、.ResX ファイルを編集して、/str オプションと共に
21+ // ResGen を実行し直すか、または VS プロジェクトをビルドし直します。
22+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")]
23+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25+ internal class Resources {
26+
27+ private static global::System.Resources.ResourceManager resourceMan;
28+
29+ private static global::System.Globalization.CultureInfo resourceCulture;
30+
31+ [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
32+ internal Resources() {
33+ }
34+
35+ /// <summary>
36+ /// このクラスで使用されているキャッシュされた ResourceManager インスタンスを返します。
37+ /// </summary>
38+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
39+ internal static global::System.Resources.ResourceManager ResourceManager {
40+ get {
41+ if (object.ReferenceEquals(resourceMan, null)) {
42+ global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("OfficeImageReducer.Properties.Resources", typeof(Resources).Assembly);
43+ resourceMan = temp;
44+ }
45+ return resourceMan;
46+ }
47+ }
48+
49+ /// <summary>
50+ /// 厳密に型指定されたこのリソース クラスを使用して、すべての検索リソースに対し、
51+ /// 現在のスレッドの CurrentUICulture プロパティをオーバーライドします。
52+ /// </summary>
53+ [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
54+ internal static global::System.Globalization.CultureInfo Culture {
55+ get {
56+ return resourceCulture;
57+ }
58+ set {
59+ resourceCulture = value;
60+ }
61+ }
62+ }
63+}
--- tags/OfficeImageReducer_0402-190321/OfficeImageReducerCS/Properties/Settings.Designer.cs (nonexistent)
+++ tags/OfficeImageReducer_0402-190321/OfficeImageReducerCS/Properties/Settings.Designer.cs (revision 146)
@@ -0,0 +1,26 @@
1+//------------------------------------------------------------------------------
2+// <auto-generated>
3+// このコードはツールによって生成されました。
4+// ランタイム バージョン:4.0.30319.42000
5+//
6+// このファイルへの変更は、以下の状況下で不正な動作の原因になったり、
7+// コードが再生成されるときに損失したりします。
8+// </auto-generated>
9+//------------------------------------------------------------------------------
10+
11+namespace OfficeImageReducer.Properties {
12+
13+
14+ [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
15+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.3.0.0")]
16+ internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
17+
18+ private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
19+
20+ public static Settings Default {
21+ get {
22+ return defaultInstance;
23+ }
24+ }
25+ }
26+}
--- tags/OfficeImageReducer_0402-190321/OfficeImageReducerCS/Program.cs (nonexistent)
+++ tags/OfficeImageReducer_0402-190321/OfficeImageReducerCS/Program.cs (revision 146)
@@ -0,0 +1,22 @@
1+using System;
2+using System.Collections.Generic;
3+using System.Linq;
4+using System.Threading.Tasks;
5+using System.Windows.Forms;
6+
7+namespace OfficeImageReducer
8+{
9+ static class Program
10+ {
11+ /// <summary>
12+ /// アプリケーションのメイン エントリ ポイントです。
13+ /// </summary>
14+ [STAThread]
15+ static void Main()
16+ {
17+ Application.EnableVisualStyles();
18+ Application.SetCompatibleTextRenderingDefault(false);
19+ Application.Run(new FormMain());
20+ }
21+ }
22+}
--- tags/OfficeImageReducer_0402-190321/UnitTestProject1/bin/Release/netcoreapp2.1/UnitTestProject1.deps.json (nonexistent)
+++ tags/OfficeImageReducer_0402-190321/UnitTestProject1/bin/Release/netcoreapp2.1/UnitTestProject1.deps.json (revision 146)
@@ -0,0 +1,1526 @@
1+{
2+ "runtimeTarget": {
3+ "name": ".NETCoreApp,Version=v2.1",
4+ "signature": "c9ab0eeb9f8a08d1496cc2f36b6d9b2926228585"
5+ },
6+ "compilationOptions": {},
7+ "targets": {
8+ ".NETCoreApp,Version=v2.1": {
9+ "UnitTestProject1/1.0.0": {
10+ "dependencies": {
11+ "MSTest.TestAdapter": "1.3.2",
12+ "MSTest.TestFramework": "1.3.2",
13+ "Microsoft.NET.Test.Sdk": "15.8.0",
14+ "OfficeImageReducer": "1.0.0"
15+ },
16+ "runtime": {
17+ "UnitTestProject1.dll": {}
18+ }
19+ },
20+ "Microsoft.CodeCoverage/15.8.0": {
21+ "runtime": {
22+ "lib/netcoreapp1.0/Microsoft.VisualStudio.CodeCoverage.Shim.dll": {
23+ "assemblyVersion": "15.0.0.0",
24+ "fileVersion": "15.0.27718.3008"
25+ }
26+ }
27+ },
28+ "Microsoft.CSharp/4.0.1": {
29+ "dependencies": {
30+ "System.Collections": "4.3.0",
31+ "System.Diagnostics.Debug": "4.3.0",
32+ "System.Dynamic.Runtime": "4.0.11",
33+ "System.Globalization": "4.3.0",
34+ "System.Linq": "4.1.0",
35+ "System.Linq.Expressions": "4.1.0",
36+ "System.ObjectModel": "4.0.12",
37+ "System.Reflection": "4.3.0",
38+ "System.Reflection.Extensions": "4.0.1",
39+ "System.Reflection.Primitives": "4.3.0",
40+ "System.Reflection.TypeExtensions": "4.1.0",
41+ "System.Resources.ResourceManager": "4.3.0",
42+ "System.Runtime": "4.3.0",
43+ "System.Runtime.Extensions": "4.3.0",
44+ "System.Runtime.InteropServices": "4.1.0",
45+ "System.Threading": "4.3.0"
46+ }
47+ },
48+ "Microsoft.DotNet.PlatformAbstractions/1.0.3": {
49+ "dependencies": {
50+ "System.AppContext": "4.1.0",
51+ "System.Collections": "4.3.0",
52+ "System.IO": "4.3.0",
53+ "System.IO.FileSystem": "4.0.1",
54+ "System.Reflection.TypeExtensions": "4.1.0",
55+ "System.Runtime.Extensions": "4.3.0",
56+ "System.Runtime.InteropServices": "4.1.0",
57+ "System.Runtime.InteropServices.RuntimeInformation": "4.0.0"
58+ },
59+ "runtime": {
60+ "lib/netstandard1.3/Microsoft.DotNet.PlatformAbstractions.dll": {
61+ "assemblyVersion": "1.0.1.0",
62+ "fileVersion": "1.0.1.0"
63+ }
64+ }
65+ },
66+ "Microsoft.Extensions.DependencyModel/1.0.3": {
67+ "dependencies": {
68+ "Microsoft.DotNet.PlatformAbstractions": "1.0.3",
69+ "Newtonsoft.Json": "9.0.1",
70+ "System.Diagnostics.Debug": "4.3.0",
71+ "System.Dynamic.Runtime": "4.0.11",
72+ "System.Linq": "4.1.0"
73+ },
74+ "runtime": {
75+ "lib/netstandard1.6/Microsoft.Extensions.DependencyModel.dll": {
76+ "assemblyVersion": "1.0.1.0",
77+ "fileVersion": "1.0.1.0"
78+ }
79+ }
80+ },
81+ "Microsoft.NET.Test.Sdk/15.8.0": {
82+ "dependencies": {
83+ "Microsoft.CodeCoverage": "15.8.0",
84+ "Microsoft.TestPlatform.TestHost": "15.8.0"
85+ }
86+ },
87+ "Microsoft.TestPlatform.ObjectModel/15.8.0": {
88+ "dependencies": {
89+ "System.ComponentModel.EventBasedAsync": "4.0.11",
90+ "System.ComponentModel.TypeConverter": "4.1.0",
91+ "System.Diagnostics.Process": "4.1.0",
92+ "System.Diagnostics.TextWriterTraceListener": "4.3.0",
93+ "System.Diagnostics.TraceSource": "4.3.0",
94+ "System.Reflection.Metadata": "1.3.0",
95+ "System.Reflection.TypeExtensions": "4.1.0",
96+ "System.Runtime.InteropServices.RuntimeInformation": "4.0.0",
97+ "System.Runtime.Loader": "4.0.0",
98+ "System.Runtime.Serialization.Json": "4.0.2",
99+ "System.Runtime.Serialization.Primitives": "4.1.1",
100+ "System.Threading.Thread": "4.0.0",
101+ "System.Xml.XPath.XmlDocument": "4.0.1"
102+ },
103+ "runtime": {
104+ "lib/netstandard1.5/Microsoft.TestPlatform.CoreUtilities.dll": {
105+ "assemblyVersion": "15.0.0.0",
106+ "fileVersion": "15.0.0.0"
107+ },
108+ "lib/netstandard1.5/Microsoft.TestPlatform.PlatformAbstractions.dll": {
109+ "assemblyVersion": "15.0.0.0",
110+ "fileVersion": "15.0.0.0"
111+ },
112+ "lib/netstandard1.5/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll": {
113+ "assemblyVersion": "15.0.0.0",
114+ "fileVersion": "15.0.0.0"
115+ }
116+ },
117+ "resources": {
118+ "lib/netstandard1.5/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
119+ "locale": "cs"
120+ },
121+ "lib/netstandard1.5/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
122+ "locale": "cs"
123+ },
124+ "lib/netstandard1.5/de/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
125+ "locale": "de"
126+ },
127+ "lib/netstandard1.5/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
128+ "locale": "de"
129+ },
130+ "lib/netstandard1.5/es/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
131+ "locale": "es"
132+ },
133+ "lib/netstandard1.5/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
134+ "locale": "es"
135+ },
136+ "lib/netstandard1.5/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
137+ "locale": "fr"
138+ },
139+ "lib/netstandard1.5/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
140+ "locale": "fr"
141+ },
142+ "lib/netstandard1.5/it/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
143+ "locale": "it"
144+ },
145+ "lib/netstandard1.5/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
146+ "locale": "it"
147+ },
148+ "lib/netstandard1.5/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
149+ "locale": "ja"
150+ },
151+ "lib/netstandard1.5/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
152+ "locale": "ja"
153+ },
154+ "lib/netstandard1.5/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
155+ "locale": "ko"
156+ },
157+ "lib/netstandard1.5/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
158+ "locale": "ko"
159+ },
160+ "lib/netstandard1.5/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
161+ "locale": "pl"
162+ },
163+ "lib/netstandard1.5/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
164+ "locale": "pl"
165+ },
166+ "lib/netstandard1.5/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
167+ "locale": "pt-BR"
168+ },
169+ "lib/netstandard1.5/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
170+ "locale": "pt-BR"
171+ },
172+ "lib/netstandard1.5/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
173+ "locale": "ru"
174+ },
175+ "lib/netstandard1.5/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
176+ "locale": "ru"
177+ },
178+ "lib/netstandard1.5/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
179+ "locale": "tr"
180+ },
181+ "lib/netstandard1.5/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
182+ "locale": "tr"
183+ },
184+ "lib/netstandard1.5/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
185+ "locale": "zh-Hans"
186+ },
187+ "lib/netstandard1.5/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
188+ "locale": "zh-Hans"
189+ },
190+ "lib/netstandard1.5/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
191+ "locale": "zh-Hant"
192+ },
193+ "lib/netstandard1.5/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
194+ "locale": "zh-Hant"
195+ }
196+ }
197+ },
198+ "Microsoft.TestPlatform.TestHost/15.8.0": {
199+ "dependencies": {
200+ "Microsoft.Extensions.DependencyModel": "1.0.3",
201+ "Microsoft.TestPlatform.ObjectModel": "15.8.0",
202+ "Newtonsoft.Json": "9.0.1"
203+ },
204+ "runtime": {
205+ "lib/netstandard1.5/Microsoft.TestPlatform.CommunicationUtilities.dll": {
206+ "assemblyVersion": "15.0.0.0",
207+ "fileVersion": "15.0.0.0"
208+ },
209+ "lib/netstandard1.5/Microsoft.TestPlatform.CrossPlatEngine.dll": {
210+ "assemblyVersion": "15.0.0.0",
211+ "fileVersion": "15.0.0.0"
212+ },
213+ "lib/netstandard1.5/Microsoft.VisualStudio.TestPlatform.Common.dll": {
214+ "assemblyVersion": "15.0.0.0",
215+ "fileVersion": "15.0.0.0"
216+ },
217+ "lib/netstandard1.5/testhost.dll": {
218+ "assemblyVersion": "15.0.0.0",
219+ "fileVersion": "15.0.0.0"
220+ }
221+ },
222+ "resources": {
223+ "lib/netstandard1.5/cs/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
224+ "locale": "cs"
225+ },
226+ "lib/netstandard1.5/cs/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
227+ "locale": "cs"
228+ },
229+ "lib/netstandard1.5/cs/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
230+ "locale": "cs"
231+ },
232+ "lib/netstandard1.5/de/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
233+ "locale": "de"
234+ },
235+ "lib/netstandard1.5/de/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
236+ "locale": "de"
237+ },
238+ "lib/netstandard1.5/de/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
239+ "locale": "de"
240+ },
241+ "lib/netstandard1.5/es/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
242+ "locale": "es"
243+ },
244+ "lib/netstandard1.5/es/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
245+ "locale": "es"
246+ },
247+ "lib/netstandard1.5/es/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
248+ "locale": "es"
249+ },
250+ "lib/netstandard1.5/fr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
251+ "locale": "fr"
252+ },
253+ "lib/netstandard1.5/fr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
254+ "locale": "fr"
255+ },
256+ "lib/netstandard1.5/fr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
257+ "locale": "fr"
258+ },
259+ "lib/netstandard1.5/it/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
260+ "locale": "it"
261+ },
262+ "lib/netstandard1.5/it/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
263+ "locale": "it"
264+ },
265+ "lib/netstandard1.5/it/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
266+ "locale": "it"
267+ },
268+ "lib/netstandard1.5/ja/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
269+ "locale": "ja"
270+ },
271+ "lib/netstandard1.5/ja/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
272+ "locale": "ja"
273+ },
274+ "lib/netstandard1.5/ja/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
275+ "locale": "ja"
276+ },
277+ "lib/netstandard1.5/ko/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
278+ "locale": "ko"
279+ },
280+ "lib/netstandard1.5/ko/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
281+ "locale": "ko"
282+ },
283+ "lib/netstandard1.5/ko/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
284+ "locale": "ko"
285+ },
286+ "lib/netstandard1.5/pl/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
287+ "locale": "pl"
288+ },
289+ "lib/netstandard1.5/pl/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
290+ "locale": "pl"
291+ },
292+ "lib/netstandard1.5/pl/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
293+ "locale": "pl"
294+ },
295+ "lib/netstandard1.5/pt-BR/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
296+ "locale": "pt-BR"
297+ },
298+ "lib/netstandard1.5/pt-BR/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
299+ "locale": "pt-BR"
300+ },
301+ "lib/netstandard1.5/pt-BR/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
302+ "locale": "pt-BR"
303+ },
304+ "lib/netstandard1.5/ru/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
305+ "locale": "ru"
306+ },
307+ "lib/netstandard1.5/ru/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
308+ "locale": "ru"
309+ },
310+ "lib/netstandard1.5/ru/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
311+ "locale": "ru"
312+ },
313+ "lib/netstandard1.5/tr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
314+ "locale": "tr"
315+ },
316+ "lib/netstandard1.5/tr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
317+ "locale": "tr"
318+ },
319+ "lib/netstandard1.5/tr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
320+ "locale": "tr"
321+ },
322+ "lib/netstandard1.5/zh-Hans/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
323+ "locale": "zh-Hans"
324+ },
325+ "lib/netstandard1.5/zh-Hans/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
326+ "locale": "zh-Hans"
327+ },
328+ "lib/netstandard1.5/zh-Hans/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
329+ "locale": "zh-Hans"
330+ },
331+ "lib/netstandard1.5/zh-Hant/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
332+ "locale": "zh-Hant"
333+ },
334+ "lib/netstandard1.5/zh-Hant/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
335+ "locale": "zh-Hant"
336+ },
337+ "lib/netstandard1.5/zh-Hant/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
338+ "locale": "zh-Hant"
339+ }
340+ }
341+ },
342+ "Microsoft.Win32.Primitives/4.0.1": {
343+ "dependencies": {
344+ "System.Runtime": "4.3.0"
345+ }
346+ },
347+ "Microsoft.Win32.Registry/4.0.0": {
348+ "dependencies": {
349+ "System.Collections": "4.3.0",
350+ "System.Globalization": "4.3.0",
351+ "System.Resources.ResourceManager": "4.3.0",
352+ "System.Runtime": "4.3.0",
353+ "System.Runtime.Extensions": "4.3.0",
354+ "System.Runtime.Handles": "4.0.1",
355+ "System.Runtime.InteropServices": "4.1.0"
356+ },
357+ "runtimeTargets": {
358+ "runtime/unix/lib/_._": {
359+ "rid": "unix",
360+ "assetType": "runtime"
361+ },
362+ "runtime/win/lib/_._": {
363+ "rid": "win",
364+ "assetType": "runtime"
365+ }
366+ }
367+ },
368+ "MSTest.TestAdapter/1.3.2": {
369+ "dependencies": {
370+ "System.Diagnostics.TextWriterTraceListener": "4.3.0"
371+ }
372+ },
373+ "MSTest.TestFramework/1.3.2": {
374+ "runtime": {
375+ "lib/netstandard1.0/Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll": {
376+ "assemblyVersion": "14.0.0.0",
377+ "fileVersion": "14.0.2505.1"
378+ },
379+ "lib/netstandard1.0/Microsoft.VisualStudio.TestPlatform.TestFramework.dll": {
380+ "assemblyVersion": "14.0.0.0",
381+ "fileVersion": "14.0.2505.1"
382+ }
383+ }
384+ },
385+ "Newtonsoft.Json/9.0.1": {
386+ "dependencies": {
387+ "Microsoft.CSharp": "4.0.1",
388+ "System.Collections": "4.3.0",
389+ "System.Diagnostics.Debug": "4.3.0",
390+ "System.Dynamic.Runtime": "4.0.11",
391+ "System.Globalization": "4.3.0",
392+ "System.IO": "4.3.0",
393+ "System.Linq": "4.1.0",
394+ "System.Linq.Expressions": "4.1.0",
395+ "System.ObjectModel": "4.0.12",
396+ "System.Reflection": "4.3.0",
397+ "System.Reflection.Extensions": "4.0.1",
398+ "System.Resources.ResourceManager": "4.3.0",
399+ "System.Runtime": "4.3.0",
400+ "System.Runtime.Extensions": "4.3.0",
401+ "System.Runtime.Serialization.Primitives": "4.1.1",
402+ "System.Text.Encoding": "4.3.0",
403+ "System.Text.Encoding.Extensions": "4.0.11",
404+ "System.Text.RegularExpressions": "4.1.0",
405+ "System.Threading": "4.3.0",
406+ "System.Threading.Tasks": "4.3.0",
407+ "System.Xml.ReaderWriter": "4.0.11",
408+ "System.Xml.XDocument": "4.0.11"
409+ },
410+ "runtime": {
411+ "lib/netstandard1.0/Newtonsoft.Json.dll": {
412+ "assemblyVersion": "9.0.0.0",
413+ "fileVersion": "9.0.1.19813"
414+ }
415+ }
416+ },
417+ "runtime.native.System/4.3.0": {},
418+ "System.AppContext/4.1.0": {
419+ "dependencies": {
420+ "System.Runtime": "4.3.0"
421+ }
422+ },
423+ "System.Collections/4.3.0": {
424+ "dependencies": {
425+ "System.Runtime": "4.3.0"
426+ }
427+ },
428+ "System.Collections.Concurrent/4.0.12": {
429+ "dependencies": {
430+ "System.Collections": "4.3.0",
431+ "System.Diagnostics.Debug": "4.3.0",
432+ "System.Diagnostics.Tracing": "4.1.0",
433+ "System.Globalization": "4.3.0",
434+ "System.Reflection": "4.3.0",
435+ "System.Resources.ResourceManager": "4.3.0",
436+ "System.Runtime": "4.3.0",
437+ "System.Runtime.Extensions": "4.3.0",
438+ "System.Threading": "4.3.0",
439+ "System.Threading.Tasks": "4.3.0"
440+ }
441+ },
442+ "System.Collections.Immutable/1.2.0": {
443+ "dependencies": {
444+ "System.Collections": "4.3.0",
445+ "System.Diagnostics.Debug": "4.3.0",
446+ "System.Globalization": "4.3.0",
447+ "System.Linq": "4.1.0",
448+ "System.Resources.ResourceManager": "4.3.0",
449+ "System.Runtime": "4.3.0",
450+ "System.Runtime.Extensions": "4.3.0",
451+ "System.Threading": "4.3.0"
452+ }
453+ },
454+ "System.Collections.NonGeneric/4.0.1": {
455+ "dependencies": {
456+ "System.Diagnostics.Debug": "4.3.0",
457+ "System.Globalization": "4.3.0",
458+ "System.Resources.ResourceManager": "4.3.0",
459+ "System.Runtime": "4.3.0",
460+ "System.Runtime.Extensions": "4.3.0",
461+ "System.Threading": "4.3.0"
462+ }
463+ },
464+ "System.Collections.Specialized/4.0.1": {
465+ "dependencies": {
466+ "System.Collections.NonGeneric": "4.0.1",
467+ "System.Globalization": "4.3.0",
468+ "System.Globalization.Extensions": "4.0.1",
469+ "System.Resources.ResourceManager": "4.3.0",
470+ "System.Runtime": "4.3.0",
471+ "System.Runtime.Extensions": "4.3.0",
472+ "System.Threading": "4.3.0"
473+ }
474+ },
475+ "System.ComponentModel/4.0.1": {
476+ "dependencies": {
477+ "System.Runtime": "4.3.0"
478+ }
479+ },
480+ "System.ComponentModel.EventBasedAsync/4.0.11": {
481+ "dependencies": {
482+ "System.Resources.ResourceManager": "4.3.0",
483+ "System.Runtime": "4.3.0",
484+ "System.Threading": "4.3.0",
485+ "System.Threading.Tasks": "4.3.0"
486+ }
487+ },
488+ "System.ComponentModel.Primitives/4.1.0": {
489+ "dependencies": {
490+ "System.ComponentModel": "4.0.1",
491+ "System.Resources.ResourceManager": "4.3.0",
492+ "System.Runtime": "4.3.0"
493+ }
494+ },
495+ "System.ComponentModel.TypeConverter/4.1.0": {
496+ "dependencies": {
497+ "System.Collections": "4.3.0",
498+ "System.Collections.NonGeneric": "4.0.1",
499+ "System.Collections.Specialized": "4.0.1",
500+ "System.ComponentModel": "4.0.1",
501+ "System.ComponentModel.Primitives": "4.1.0",
502+ "System.Globalization": "4.3.0",
503+ "System.Linq": "4.1.0",
504+ "System.Reflection": "4.3.0",
505+ "System.Reflection.Extensions": "4.0.1",
506+ "System.Reflection.Primitives": "4.3.0",
507+ "System.Reflection.TypeExtensions": "4.1.0",
508+ "System.Resources.ResourceManager": "4.3.0",
509+ "System.Runtime": "4.3.0",
510+ "System.Runtime.Extensions": "4.3.0",
511+ "System.Threading": "4.3.0"
512+ }
513+ },
514+ "System.Diagnostics.Debug/4.3.0": {
515+ "dependencies": {
516+ "System.Runtime": "4.3.0"
517+ }
518+ },
519+ "System.Diagnostics.Process/4.1.0": {
520+ "dependencies": {
521+ "Microsoft.Win32.Primitives": "4.0.1",
522+ "Microsoft.Win32.Registry": "4.0.0",
523+ "System.Collections": "4.3.0",
524+ "System.Diagnostics.Debug": "4.3.0",
525+ "System.Globalization": "4.3.0",
526+ "System.IO": "4.3.0",
527+ "System.IO.FileSystem": "4.0.1",
528+ "System.IO.FileSystem.Primitives": "4.0.1",
529+ "System.Resources.ResourceManager": "4.3.0",
530+ "System.Runtime": "4.3.0",
531+ "System.Runtime.Extensions": "4.3.0",
532+ "System.Runtime.Handles": "4.0.1",
533+ "System.Runtime.InteropServices": "4.1.0",
534+ "System.Text.Encoding": "4.3.0",
535+ "System.Text.Encoding.Extensions": "4.0.11",
536+ "System.Threading": "4.3.0",
537+ "System.Threading.Tasks": "4.3.0",
538+ "System.Threading.Thread": "4.0.0",
539+ "System.Threading.ThreadPool": "4.0.10",
540+ "runtime.native.System": "4.3.0"
541+ },
542+ "runtimeTargets": {
543+ "runtime/linux/lib/_._": {
544+ "rid": "linux",
545+ "assetType": "runtime"
546+ },
547+ "runtime/osx/lib/_._": {
548+ "rid": "osx",
549+ "assetType": "runtime"
550+ },
551+ "runtime/win/lib/_._": {
552+ "rid": "win",
553+ "assetType": "runtime"
554+ }
555+ }
556+ },
557+ "System.Diagnostics.TextWriterTraceListener/4.3.0": {
558+ "dependencies": {
559+ "System.Diagnostics.TraceSource": "4.3.0",
560+ "System.Globalization": "4.3.0",
561+ "System.IO": "4.3.0",
562+ "System.Resources.ResourceManager": "4.3.0",
563+ "System.Runtime": "4.3.0",
564+ "System.Threading": "4.3.0"
565+ }
566+ },
567+ "System.Diagnostics.Tools/4.0.1": {
568+ "dependencies": {
569+ "System.Runtime": "4.3.0"
570+ }
571+ },
572+ "System.Diagnostics.TraceSource/4.3.0": {
573+ "dependencies": {
574+ "System.Collections": "4.3.0",
575+ "System.Diagnostics.Debug": "4.3.0",
576+ "System.Globalization": "4.3.0",
577+ "System.Resources.ResourceManager": "4.3.0",
578+ "System.Runtime": "4.3.0",
579+ "System.Runtime.Extensions": "4.3.0",
580+ "System.Threading": "4.3.0",
581+ "runtime.native.System": "4.3.0"
582+ },
583+ "runtimeTargets": {
584+ "runtime/unix/lib/_._": {
585+ "rid": "unix",
586+ "assetType": "runtime"
587+ },
588+ "runtime/win/lib/_._": {
589+ "rid": "win",
590+ "assetType": "runtime"
591+ }
592+ }
593+ },
594+ "System.Diagnostics.Tracing/4.1.0": {
595+ "dependencies": {
596+ "System.Runtime": "4.3.0"
597+ }
598+ },
599+ "System.Dynamic.Runtime/4.0.11": {
600+ "dependencies": {
601+ "System.Collections": "4.3.0",
602+ "System.Diagnostics.Debug": "4.3.0",
603+ "System.Globalization": "4.3.0",
604+ "System.Linq": "4.1.0",
605+ "System.Linq.Expressions": "4.1.0",
606+ "System.ObjectModel": "4.0.12",
607+ "System.Reflection": "4.3.0",
608+ "System.Reflection.Emit": "4.0.1",
609+ "System.Reflection.Emit.ILGeneration": "4.0.1",
610+ "System.Reflection.Primitives": "4.3.0",
611+ "System.Reflection.TypeExtensions": "4.1.0",
612+ "System.Resources.ResourceManager": "4.3.0",
613+ "System.Runtime": "4.3.0",
614+ "System.Runtime.Extensions": "4.3.0",
615+ "System.Threading": "4.3.0"
616+ }
617+ },
618+ "System.Globalization/4.3.0": {
619+ "dependencies": {
620+ "System.Runtime": "4.3.0"
621+ }
622+ },
623+ "System.Globalization.Extensions/4.0.1": {
624+ "dependencies": {
625+ "System.Globalization": "4.3.0",
626+ "System.Resources.ResourceManager": "4.3.0",
627+ "System.Runtime": "4.3.0",
628+ "System.Runtime.Extensions": "4.3.0",
629+ "System.Runtime.InteropServices": "4.1.0"
630+ },
631+ "runtimeTargets": {
632+ "runtime/unix/lib/_._": {
633+ "rid": "unix",
634+ "assetType": "runtime"
635+ },
636+ "runtime/win/lib/_._": {
637+ "rid": "win",
638+ "assetType": "runtime"
639+ }
640+ }
641+ },
642+ "System.IO/4.3.0": {
643+ "dependencies": {
644+ "System.Runtime": "4.3.0",
645+ "System.Text.Encoding": "4.3.0",
646+ "System.Threading.Tasks": "4.3.0"
647+ }
648+ },
649+ "System.IO.FileSystem/4.0.1": {
650+ "dependencies": {
651+ "System.IO": "4.3.0",
652+ "System.IO.FileSystem.Primitives": "4.0.1",
653+ "System.Runtime": "4.3.0",
654+ "System.Runtime.Handles": "4.0.1",
655+ "System.Text.Encoding": "4.3.0",
656+ "System.Threading.Tasks": "4.3.0"
657+ }
658+ },
659+ "System.IO.FileSystem.Primitives/4.0.1": {
660+ "dependencies": {
661+ "System.Runtime": "4.3.0"
662+ }
663+ },
664+ "System.Linq/4.1.0": {
665+ "dependencies": {
666+ "System.Collections": "4.3.0",
667+ "System.Diagnostics.Debug": "4.3.0",
668+ "System.Resources.ResourceManager": "4.3.0",
669+ "System.Runtime": "4.3.0",
670+ "System.Runtime.Extensions": "4.3.0"
671+ }
672+ },
673+ "System.Linq.Expressions/4.1.0": {
674+ "dependencies": {
675+ "System.Collections": "4.3.0",
676+ "System.Diagnostics.Debug": "4.3.0",
677+ "System.Globalization": "4.3.0",
678+ "System.IO": "4.3.0",
679+ "System.Linq": "4.1.0",
680+ "System.ObjectModel": "4.0.12",
681+ "System.Reflection": "4.3.0",
682+ "System.Reflection.Emit": "4.0.1",
683+ "System.Reflection.Emit.ILGeneration": "4.0.1",
684+ "System.Reflection.Emit.Lightweight": "4.0.1",
685+ "System.Reflection.Extensions": "4.0.1",
686+ "System.Reflection.Primitives": "4.3.0",
687+ "System.Reflection.TypeExtensions": "4.1.0",
688+ "System.Resources.ResourceManager": "4.3.0",
689+ "System.Runtime": "4.3.0",
690+ "System.Runtime.Extensions": "4.3.0",
691+ "System.Threading": "4.3.0"
692+ }
693+ },
694+ "System.ObjectModel/4.0.12": {
695+ "dependencies": {
696+ "System.Collections": "4.3.0",
697+ "System.Diagnostics.Debug": "4.3.0",
698+ "System.Resources.ResourceManager": "4.3.0",
699+ "System.Runtime": "4.3.0",
700+ "System.Threading": "4.3.0"
701+ }
702+ },
703+ "System.Private.DataContractSerialization/4.1.1": {
704+ "dependencies": {
705+ "System.Collections": "4.3.0",
706+ "System.Collections.Concurrent": "4.0.12",
707+ "System.Diagnostics.Debug": "4.3.0",
708+ "System.Globalization": "4.3.0",
709+ "System.IO": "4.3.0",
710+ "System.Linq": "4.1.0",
711+ "System.Reflection": "4.3.0",
712+ "System.Reflection.Emit.ILGeneration": "4.0.1",
713+ "System.Reflection.Emit.Lightweight": "4.0.1",
714+ "System.Reflection.Extensions": "4.0.1",
715+ "System.Reflection.Primitives": "4.3.0",
716+ "System.Reflection.TypeExtensions": "4.1.0",
717+ "System.Resources.ResourceManager": "4.3.0",
718+ "System.Runtime": "4.3.0",
719+ "System.Runtime.Extensions": "4.3.0",
720+ "System.Runtime.Serialization.Primitives": "4.1.1",
721+ "System.Text.Encoding": "4.3.0",
722+ "System.Text.Encoding.Extensions": "4.0.11",
723+ "System.Text.RegularExpressions": "4.1.0",
724+ "System.Threading": "4.3.0",
725+ "System.Threading.Tasks": "4.3.0",
726+ "System.Xml.ReaderWriter": "4.0.11",
727+ "System.Xml.XmlDocument": "4.0.1",
728+ "System.Xml.XmlSerializer": "4.0.11"
729+ }
730+ },
731+ "System.Reflection/4.3.0": {
732+ "dependencies": {
733+ "System.IO": "4.3.0",
734+ "System.Reflection.Primitives": "4.3.0",
735+ "System.Runtime": "4.3.0"
736+ }
737+ },
738+ "System.Reflection.Emit/4.0.1": {
739+ "dependencies": {
740+ "System.IO": "4.3.0",
741+ "System.Reflection": "4.3.0",
742+ "System.Reflection.Emit.ILGeneration": "4.0.1",
743+ "System.Reflection.Primitives": "4.3.0",
744+ "System.Runtime": "4.3.0"
745+ }
746+ },
747+ "System.Reflection.Emit.ILGeneration/4.0.1": {
748+ "dependencies": {
749+ "System.Reflection": "4.3.0",
750+ "System.Reflection.Primitives": "4.3.0",
751+ "System.Runtime": "4.3.0"
752+ }
753+ },
754+ "System.Reflection.Emit.Lightweight/4.0.1": {
755+ "dependencies": {
756+ "System.Reflection": "4.3.0",
757+ "System.Reflection.Emit.ILGeneration": "4.0.1",
758+ "System.Reflection.Primitives": "4.3.0",
759+ "System.Runtime": "4.3.0"
760+ }
761+ },
762+ "System.Reflection.Extensions/4.0.1": {
763+ "dependencies": {
764+ "System.Reflection": "4.3.0",
765+ "System.Runtime": "4.3.0"
766+ }
767+ },
768+ "System.Reflection.Metadata/1.3.0": {
769+ "dependencies": {
770+ "System.Collections": "4.3.0",
771+ "System.Collections.Immutable": "1.2.0",
772+ "System.Diagnostics.Debug": "4.3.0",
773+ "System.IO": "4.3.0",
774+ "System.Linq": "4.1.0",
775+ "System.Reflection": "4.3.0",
776+ "System.Reflection.Extensions": "4.0.1",
777+ "System.Reflection.Primitives": "4.3.0",
778+ "System.Resources.ResourceManager": "4.3.0",
779+ "System.Runtime": "4.3.0",
780+ "System.Runtime.Extensions": "4.3.0",
781+ "System.Runtime.InteropServices": "4.1.0",
782+ "System.Text.Encoding": "4.3.0",
783+ "System.Text.Encoding.Extensions": "4.0.11",
784+ "System.Threading": "4.3.0"
785+ }
786+ },
787+ "System.Reflection.Primitives/4.3.0": {
788+ "dependencies": {
789+ "System.Runtime": "4.3.0"
790+ }
791+ },
792+ "System.Reflection.TypeExtensions/4.1.0": {
793+ "dependencies": {
794+ "System.Reflection": "4.3.0",
795+ "System.Runtime": "4.3.0"
796+ }
797+ },
798+ "System.Resources.ResourceManager/4.3.0": {
799+ "dependencies": {
800+ "System.Globalization": "4.3.0",
801+ "System.Reflection": "4.3.0",
802+ "System.Runtime": "4.3.0"
803+ }
804+ },
805+ "System.Runtime/4.3.0": {},
806+ "System.Runtime.Extensions/4.3.0": {
807+ "dependencies": {
808+ "System.Runtime": "4.3.0"
809+ }
810+ },
811+ "System.Runtime.Handles/4.0.1": {
812+ "dependencies": {
813+ "System.Runtime": "4.3.0"
814+ }
815+ },
816+ "System.Runtime.InteropServices/4.1.0": {
817+ "dependencies": {
818+ "System.Reflection": "4.3.0",
819+ "System.Reflection.Primitives": "4.3.0",
820+ "System.Runtime": "4.3.0",
821+ "System.Runtime.Handles": "4.0.1"
822+ }
823+ },
824+ "System.Runtime.InteropServices.RuntimeInformation/4.0.0": {
825+ "dependencies": {
826+ "System.Reflection": "4.3.0",
827+ "System.Resources.ResourceManager": "4.3.0",
828+ "System.Runtime": "4.3.0",
829+ "System.Runtime.InteropServices": "4.1.0",
830+ "System.Threading": "4.3.0",
831+ "runtime.native.System": "4.3.0"
832+ },
833+ "runtimeTargets": {
834+ "runtime/unix/lib/_._": {
835+ "rid": "unix",
836+ "assetType": "runtime"
837+ },
838+ "runtime/win/lib/_._": {
839+ "rid": "win",
840+ "assetType": "runtime"
841+ }
842+ }
843+ },
844+ "System.Runtime.Loader/4.0.0": {
845+ "dependencies": {
846+ "System.IO": "4.3.0",
847+ "System.Reflection": "4.3.0",
848+ "System.Runtime": "4.3.0"
849+ }
850+ },
851+ "System.Runtime.Serialization.Json/4.0.2": {
852+ "dependencies": {
853+ "System.IO": "4.3.0",
854+ "System.Private.DataContractSerialization": "4.1.1",
855+ "System.Runtime": "4.3.0"
856+ }
857+ },
858+ "System.Runtime.Serialization.Primitives/4.1.1": {
859+ "dependencies": {
860+ "System.Resources.ResourceManager": "4.3.0",
861+ "System.Runtime": "4.3.0"
862+ }
863+ },
864+ "System.Text.Encoding/4.3.0": {
865+ "dependencies": {
866+ "System.Runtime": "4.3.0"
867+ }
868+ },
869+ "System.Text.Encoding.Extensions/4.0.11": {
870+ "dependencies": {
871+ "System.Runtime": "4.3.0",
872+ "System.Text.Encoding": "4.3.0"
873+ }
874+ },
875+ "System.Text.RegularExpressions/4.1.0": {
876+ "dependencies": {
877+ "System.Collections": "4.3.0",
878+ "System.Globalization": "4.3.0",
879+ "System.Resources.ResourceManager": "4.3.0",
880+ "System.Runtime": "4.3.0",
881+ "System.Runtime.Extensions": "4.3.0",
882+ "System.Threading": "4.3.0"
883+ }
884+ },
885+ "System.Threading/4.3.0": {
886+ "dependencies": {
887+ "System.Runtime": "4.3.0",
888+ "System.Threading.Tasks": "4.3.0"
889+ }
890+ },
891+ "System.Threading.Tasks/4.3.0": {
892+ "dependencies": {
893+ "System.Runtime": "4.3.0"
894+ }
895+ },
896+ "System.Threading.Tasks.Extensions/4.0.0": {
897+ "dependencies": {
898+ "System.Collections": "4.3.0",
899+ "System.Runtime": "4.3.0",
900+ "System.Threading.Tasks": "4.3.0"
901+ }
902+ },
903+ "System.Threading.Thread/4.0.0": {
904+ "dependencies": {
905+ "System.Runtime": "4.3.0"
906+ }
907+ },
908+ "System.Threading.ThreadPool/4.0.10": {
909+ "dependencies": {
910+ "System.Runtime": "4.3.0",
911+ "System.Runtime.Handles": "4.0.1"
912+ }
913+ },
914+ "System.Xml.ReaderWriter/4.0.11": {
915+ "dependencies": {
916+ "System.Collections": "4.3.0",
917+ "System.Diagnostics.Debug": "4.3.0",
918+ "System.Globalization": "4.3.0",
919+ "System.IO": "4.3.0",
920+ "System.IO.FileSystem": "4.0.1",
921+ "System.IO.FileSystem.Primitives": "4.0.1",
922+ "System.Resources.ResourceManager": "4.3.0",
923+ "System.Runtime": "4.3.0",
924+ "System.Runtime.Extensions": "4.3.0",
925+ "System.Runtime.InteropServices": "4.1.0",
926+ "System.Text.Encoding": "4.3.0",
927+ "System.Text.Encoding.Extensions": "4.0.11",
928+ "System.Text.RegularExpressions": "4.1.0",
929+ "System.Threading.Tasks": "4.3.0",
930+ "System.Threading.Tasks.Extensions": "4.0.0"
931+ }
932+ },
933+ "System.Xml.XDocument/4.0.11": {
934+ "dependencies": {
935+ "System.Collections": "4.3.0",
936+ "System.Diagnostics.Debug": "4.3.0",
937+ "System.Diagnostics.Tools": "4.0.1",
938+ "System.Globalization": "4.3.0",
939+ "System.IO": "4.3.0",
940+ "System.Reflection": "4.3.0",
941+ "System.Resources.ResourceManager": "4.3.0",
942+ "System.Runtime": "4.3.0",
943+ "System.Runtime.Extensions": "4.3.0",
944+ "System.Text.Encoding": "4.3.0",
945+ "System.Threading": "4.3.0",
946+ "System.Xml.ReaderWriter": "4.0.11"
947+ }
948+ },
949+ "System.Xml.XmlDocument/4.0.1": {
950+ "dependencies": {
951+ "System.Collections": "4.3.0",
952+ "System.Diagnostics.Debug": "4.3.0",
953+ "System.Globalization": "4.3.0",
954+ "System.IO": "4.3.0",
955+ "System.Resources.ResourceManager": "4.3.0",
956+ "System.Runtime": "4.3.0",
957+ "System.Runtime.Extensions": "4.3.0",
958+ "System.Text.Encoding": "4.3.0",
959+ "System.Threading": "4.3.0",
960+ "System.Xml.ReaderWriter": "4.0.11"
961+ }
962+ },
963+ "System.Xml.XmlSerializer/4.0.11": {
964+ "dependencies": {
965+ "System.Collections": "4.3.0",
966+ "System.Globalization": "4.3.0",
967+ "System.IO": "4.3.0",
968+ "System.Linq": "4.1.0",
969+ "System.Reflection": "4.3.0",
970+ "System.Reflection.Emit": "4.0.1",
971+ "System.Reflection.Emit.ILGeneration": "4.0.1",
972+ "System.Reflection.Extensions": "4.0.1",
973+ "System.Reflection.Primitives": "4.3.0",
974+ "System.Reflection.TypeExtensions": "4.1.0",
975+ "System.Resources.ResourceManager": "4.3.0",
976+ "System.Runtime": "4.3.0",
977+ "System.Runtime.Extensions": "4.3.0",
978+ "System.Text.RegularExpressions": "4.1.0",
979+ "System.Threading": "4.3.0",
980+ "System.Xml.ReaderWriter": "4.0.11",
981+ "System.Xml.XmlDocument": "4.0.1"
982+ }
983+ },
984+ "System.Xml.XPath/4.0.1": {
985+ "dependencies": {
986+ "System.Collections": "4.3.0",
987+ "System.Diagnostics.Debug": "4.3.0",
988+ "System.Globalization": "4.3.0",
989+ "System.IO": "4.3.0",
990+ "System.Resources.ResourceManager": "4.3.0",
991+ "System.Runtime": "4.3.0",
992+ "System.Runtime.Extensions": "4.3.0",
993+ "System.Threading": "4.3.0",
994+ "System.Xml.ReaderWriter": "4.0.11"
995+ }
996+ },
997+ "System.Xml.XPath.XmlDocument/4.0.1": {
998+ "dependencies": {
999+ "System.Collections": "4.3.0",
1000+ "System.Globalization": "4.3.0",
1001+ "System.IO": "4.3.0",
1002+ "System.Resources.ResourceManager": "4.3.0",
1003+ "System.Runtime": "4.3.0",
1004+ "System.Runtime.Extensions": "4.3.0",
1005+ "System.Threading": "4.3.0",
1006+ "System.Xml.ReaderWriter": "4.0.11",
1007+ "System.Xml.XPath": "4.0.1",
1008+ "System.Xml.XmlDocument": "4.0.1"
1009+ },
1010+ "runtime": {
1011+ "lib/netstandard1.3/System.Xml.XPath.XmlDocument.dll": {
1012+ "assemblyVersion": "4.0.1.0",
1013+ "fileVersion": "1.0.24212.1"
1014+ }
1015+ }
1016+ },
1017+ "OfficeImageReducer/1.0.0": {
1018+ "runtime": {
1019+ "OfficeImageReducer.exe": {}
1020+ }
1021+ }
1022+ }
1023+ },
1024+ "libraries": {
1025+ "UnitTestProject1/1.0.0": {
1026+ "type": "project",
1027+ "serviceable": false,
1028+ "sha512": ""
1029+ },
1030+ "Microsoft.CodeCoverage/15.8.0": {
1031+ "type": "package",
1032+ "serviceable": true,
1033+ "sha512": "sha512-NhfNp80eWq5ms7fMrjuRqpwhL1H56IVzXF9d+OIDcEfQ92m1DyE0c+ufUE1ogB09+sYLd58IO4eJ8jyn7AifbA==",
1034+ "path": "microsoft.codecoverage/15.8.0",
1035+ "hashPath": "microsoft.codecoverage.15.8.0.nupkg.sha512"
1036+ },
1037+ "Microsoft.CSharp/4.0.1": {
1038+ "type": "package",
1039+ "serviceable": true,
1040+ "sha512": "sha512-17h8b5mXa87XYKrrVqdgZ38JefSUqLChUQpXgSnpzsM0nDOhE40FTeNWOJ/YmySGV6tG6T8+hjz6vxbknHJr6A==",
1041+ "path": "microsoft.csharp/4.0.1",
1042+ "hashPath": "microsoft.csharp.4.0.1.nupkg.sha512"
1043+ },
1044+ "Microsoft.DotNet.PlatformAbstractions/1.0.3": {
1045+ "type": "package",
1046+ "serviceable": true,
1047+ "sha512": "sha512-rF92Gp5L2asYrFNf0cKNBxzzGLh1krHuj6TRDk9wdjN2qdvJLaNYOn1s9oYkMlptYX436KiEFqxhLB+I5veXvQ==",
1048+ "path": "microsoft.dotnet.platformabstractions/1.0.3",
1049+ "hashPath": "microsoft.dotnet.platformabstractions.1.0.3.nupkg.sha512"
1050+ },
1051+ "Microsoft.Extensions.DependencyModel/1.0.3": {
1052+ "type": "package",
1053+ "serviceable": true,
1054+ "sha512": "sha512-Z3o19EnheuegmvgpCzwoSlnCWxYA6qIUhvKJ7ifKHHvU7U+oYR/gliLiL3LVYOOeGMEEzkpJ5W67sOcXizGtlw==",
1055+ "path": "microsoft.extensions.dependencymodel/1.0.3",
1056+ "hashPath": "microsoft.extensions.dependencymodel.1.0.3.nupkg.sha512"
1057+ },
1058+ "Microsoft.NET.Test.Sdk/15.8.0": {
1059+ "type": "package",
1060+ "serviceable": true,
1061+ "sha512": "sha512-Lz0K5fpv2uFU3GtZuSDIq0aGFPxiPD47raYDBfS1XXFbo+SbK2ZRurnmaFStE8hBrW9nXt3EqTUcyErUluYOvQ==",
1062+ "path": "microsoft.net.test.sdk/15.8.0",
1063+ "hashPath": "microsoft.net.test.sdk.15.8.0.nupkg.sha512"
1064+ },
1065+ "Microsoft.TestPlatform.ObjectModel/15.8.0": {
1066+ "type": "package",
1067+ "serviceable": true,
1068+ "sha512": "sha512-ijfUKOSGwxs7Vxj37BYNeJXaX5HtAH4GIUpxReqEg4NOYUiCIGmD2SsszT9i95lZvL/V7/wCAXkM2PCOI5uwQg==",
1069+ "path": "microsoft.testplatform.objectmodel/15.8.0",
1070+ "hashPath": "microsoft.testplatform.objectmodel.15.8.0.nupkg.sha512"
1071+ },
1072+ "Microsoft.TestPlatform.TestHost/15.8.0": {
1073+ "type": "package",
1074+ "serviceable": true,
1075+ "sha512": "sha512-fFEbBDCS1rP05+PP9FDL0OdyFmzHyj37mErMhunE+WpD7cGL17ZzkOSXa9Pla+RK12rxIeN8MeOl8aNuG2dUWw==",
1076+ "path": "microsoft.testplatform.testhost/15.8.0",
1077+ "hashPath": "microsoft.testplatform.testhost.15.8.0.nupkg.sha512"
1078+ },
1079+ "Microsoft.Win32.Primitives/4.0.1": {
1080+ "type": "package",
1081+ "serviceable": true,
1082+ "sha512": "sha512-fQnBHO9DgcmkC9dYSJoBqo6sH1VJwJprUHh8F3hbcRlxiQiBUuTntdk8tUwV490OqC2kQUrinGwZyQHTieuXRA==",
1083+ "path": "microsoft.win32.primitives/4.0.1",
1084+ "hashPath": "microsoft.win32.primitives.4.0.1.nupkg.sha512"
1085+ },
1086+ "Microsoft.Win32.Registry/4.0.0": {
1087+ "type": "package",
1088+ "serviceable": true,
1089+ "sha512": "sha512-q+eLtROUAQ3OxYA5mpQrgyFgzLQxIyrfT2eLpYX5IEPlHmIio2nh4F5bgOaQoGOV865kFKZZso9Oq9RlazvXtg==",
1090+ "path": "microsoft.win32.registry/4.0.0",
1091+ "hashPath": "microsoft.win32.registry.4.0.0.nupkg.sha512"
1092+ },
1093+ "MSTest.TestAdapter/1.3.2": {
1094+ "type": "package",
1095+ "serviceable": true,
1096+ "sha512": "sha512-CuktA7K5T42wPagNRg69mqGFBLbolWcffuQyWxUfx0ZSl2qD73COW+bJVBg73iwPweTkNa6sSRvOvnlCrLQ54g==",
1097+ "path": "mstest.testadapter/1.3.2",
1098+ "hashPath": "mstest.testadapter.1.3.2.nupkg.sha512"
1099+ },
1100+ "MSTest.TestFramework/1.3.2": {
1101+ "type": "package",
1102+ "serviceable": true,
1103+ "sha512": "sha512-gPBFq2drAnhGdT3RGYv/OaYdyCYXSvDK1Cm4aMA7o4T1nYBMHOutgcVInrVCq+z+wASKjmkSJ70ajA2+fB7kzQ==",
1104+ "path": "mstest.testframework/1.3.2",
1105+ "hashPath": "mstest.testframework.1.3.2.nupkg.sha512"
1106+ },
1107+ "Newtonsoft.Json/9.0.1": {
1108+ "type": "package",
1109+ "serviceable": true,
1110+ "sha512": "sha512-U82mHQSKaIk+lpSVCbWYKNavmNH1i5xrExDEquU1i6I5pV6UMOqRnJRSlKO3cMPfcpp0RgDY+8jUXHdQ4IfXvw==",
1111+ "path": "newtonsoft.json/9.0.1",
1112+ "hashPath": "newtonsoft.json.9.0.1.nupkg.sha512"
1113+ },
1114+ "runtime.native.System/4.3.0": {
1115+ "type": "package",
1116+ "serviceable": true,
1117+ "sha512": "sha512-c/qWt2LieNZIj1jGnVNsE2Kl23Ya2aSTBuXMD6V7k9KWr6l16Tqdwq+hJScEpWER9753NWC8h96PaVNY5Ld7Jw==",
1118+ "path": "runtime.native.system/4.3.0",
1119+ "hashPath": "runtime.native.system.4.3.0.nupkg.sha512"
1120+ },
1121+ "System.AppContext/4.1.0": {
1122+ "type": "package",
1123+ "serviceable": true,
1124+ "sha512": "sha512-3QjO4jNV7PdKkmQAVp9atA+usVnKRwI3Kx1nMwJ93T0LcQfx7pKAYk0nKz5wn1oP5iqlhZuy6RXOFdhr7rDwow==",
1125+ "path": "system.appcontext/4.1.0",
1126+ "hashPath": "system.appcontext.4.1.0.nupkg.sha512"
1127+ },
1128+ "System.Collections/4.3.0": {
1129+ "type": "package",
1130+ "serviceable": true,
1131+ "sha512": "sha512-3Dcj85/TBdVpL5Zr+gEEBUuFe2icOnLalmEh9hfck1PTYbbyWuZgh4fmm2ysCLTrqLQw6t3TgTyJ+VLp+Qb+Lw==",
1132+ "path": "system.collections/4.3.0",
1133+ "hashPath": "system.collections.4.3.0.nupkg.sha512"
1134+ },
1135+ "System.Collections.Concurrent/4.0.12": {
1136+ "type": "package",
1137+ "serviceable": true,
1138+ "sha512": "sha512-2gBcbb3drMLgxlI0fBfxMA31ec6AEyYCHygGse4vxceJan8mRIWeKJ24BFzN7+bi/NFTgdIgufzb94LWO5EERQ==",
1139+ "path": "system.collections.concurrent/4.0.12",
1140+ "hashPath": "system.collections.concurrent.4.0.12.nupkg.sha512"
1141+ },
1142+ "System.Collections.Immutable/1.2.0": {
1143+ "type": "package",
1144+ "serviceable": true,
1145+ "sha512": "sha512-Cma8cBW6di16ZLibL8LYQ+cLjGzoKxpOTu/faZfDcx94ZjAGq6Nv5RO7+T1YZXqEXTZP9rt1wLVEONVpURtUqw==",
1146+ "path": "system.collections.immutable/1.2.0",
1147+ "hashPath": "system.collections.immutable.1.2.0.nupkg.sha512"
1148+ },
1149+ "System.Collections.NonGeneric/4.0.1": {
1150+ "type": "package",
1151+ "serviceable": true,
1152+ "sha512": "sha512-hMxFT2RhhlffyCdKLDXjx8WEC5JfCvNozAZxCablAuFRH74SCV4AgzE8yJCh/73bFnEoZgJ9MJmkjQ0dJmnKqA==",
1153+ "path": "system.collections.nongeneric/4.0.1",
1154+ "hashPath": "system.collections.nongeneric.4.0.1.nupkg.sha512"
1155+ },
1156+ "System.Collections.Specialized/4.0.1": {
1157+ "type": "package",
1158+ "serviceable": true,
1159+ "sha512": "sha512-/HKQyVP0yH1I0YtK7KJL/28snxHNH/bi+0lgk/+MbURF6ULhAE31MDI+NZDerNWu264YbxklXCCygISgm+HMug==",
1160+ "path": "system.collections.specialized/4.0.1",
1161+ "hashPath": "system.collections.specialized.4.0.1.nupkg.sha512"
1162+ },
1163+ "System.ComponentModel/4.0.1": {
1164+ "type": "package",
1165+ "serviceable": true,
1166+ "sha512": "sha512-oBZFnm7seFiVfugsIyOvQCWobNZs7FzqDV/B7tx20Ep/l3UUFCPDkdTnCNaJZTU27zjeODmy2C/cP60u3D4c9w==",
1167+ "path": "system.componentmodel/4.0.1",
1168+ "hashPath": "system.componentmodel.4.0.1.nupkg.sha512"
1169+ },
1170+ "System.ComponentModel.EventBasedAsync/4.0.11": {
1171+ "type": "package",
1172+ "serviceable": true,
1173+ "sha512": "sha512-Z7SO6vvQIR84daPE4uhaNdef9CjgjDMGYkas8epUhf0U3WGuaGgZ0Mm4QuNycMdbHUY8KEdZrtgxonkAiJaAlA==",
1174+ "path": "system.componentmodel.eventbasedasync/4.0.11",
1175+ "hashPath": "system.componentmodel.eventbasedasync.4.0.11.nupkg.sha512"
1176+ },
1177+ "System.ComponentModel.Primitives/4.1.0": {
1178+ "type": "package",
1179+ "serviceable": true,
1180+ "sha512": "sha512-sc/7eVCdxPrp3ljpgTKVaQGUXiW05phNWvtv/m2kocXqrUQvTVWKou1Edas2aDjTThLPZOxPYIGNb/HN0QjURg==",
1181+ "path": "system.componentmodel.primitives/4.1.0",
1182+ "hashPath": "system.componentmodel.primitives.4.1.0.nupkg.sha512"
1183+ },
1184+ "System.ComponentModel.TypeConverter/4.1.0": {
1185+ "type": "package",
1186+ "serviceable": true,
1187+ "sha512": "sha512-MnDAlaeJZy9pdB5ZdOlwdxfpI+LJQ6e0hmH7d2+y2LkiD8DRJynyDYl4Xxf3fWFm7SbEwBZh4elcfzONQLOoQw==",
1188+ "path": "system.componentmodel.typeconverter/4.1.0",
1189+ "hashPath": "system.componentmodel.typeconverter.4.1.0.nupkg.sha512"
1190+ },
1191+ "System.Diagnostics.Debug/4.3.0": {
1192+ "type": "package",
1193+ "serviceable": true,
1194+ "sha512": "sha512-ZUhUOdqmaG5Jk3Xdb8xi5kIyQYAA4PnTNlHx1mu9ZY3qv4ELIdKbnL/akbGaKi2RnNUWaZsAs31rvzFdewTj2g==",
1195+ "path": "system.diagnostics.debug/4.3.0",
1196+ "hashPath": "system.diagnostics.debug.4.3.0.nupkg.sha512"
1197+ },
1198+ "System.Diagnostics.Process/4.1.0": {
1199+ "type": "package",
1200+ "serviceable": true,
1201+ "sha512": "sha512-mpVZ5bnlSs3tTeJ6jYyDJEIa6tavhAd88lxq1zbYhkkCu0Pno2+gHXcvZcoygq2d8JxW3gojXqNJMTAshduqZA==",
1202+ "path": "system.diagnostics.process/4.1.0",
1203+ "hashPath": "system.diagnostics.process.4.1.0.nupkg.sha512"
1204+ },
1205+ "System.Diagnostics.TextWriterTraceListener/4.3.0": {
1206+ "type": "package",
1207+ "serviceable": true,
1208+ "sha512": "sha512-F11kHWeiwYjFWto+kr8tt9ULMH0k8MsT1XmdCGPTLYHhWgN+2g7JsIZiXDrxlFGccSNkbjfwQy4xIS38gzUiZA==",
1209+ "path": "system.diagnostics.textwritertracelistener/4.3.0",
1210+ "hashPath": "system.diagnostics.textwritertracelistener.4.3.0.nupkg.sha512"
1211+ },
1212+ "System.Diagnostics.Tools/4.0.1": {
1213+ "type": "package",
1214+ "serviceable": true,
1215+ "sha512": "sha512-xBfJ8pnd4C17dWaC9FM6aShzbJcRNMChUMD42I6772KGGrqaFdumwhn9OdM68erj1ueNo3xdQ1EwiFjK5k8p0g==",
1216+ "path": "system.diagnostics.tools/4.0.1",
1217+ "hashPath": "system.diagnostics.tools.4.0.1.nupkg.sha512"
1218+ },
1219+ "System.Diagnostics.TraceSource/4.3.0": {
1220+ "type": "package",
1221+ "serviceable": true,
1222+ "sha512": "sha512-VnYp1NxGx8Ww731y2LJ1vpfb/DKVNKEZ8Jsh5SgQTZREL/YpWRArgh9pI8CDLmgHspZmLL697CaLvH85qQpRiw==",
1223+ "path": "system.diagnostics.tracesource/4.3.0",
1224+ "hashPath": "system.diagnostics.tracesource.4.3.0.nupkg.sha512"
1225+ },
1226+ "System.Diagnostics.Tracing/4.1.0": {
1227+ "type": "package",
1228+ "serviceable": true,
1229+ "sha512": "sha512-vDN1PoMZCkkdNjvZLql592oYJZgS7URcJzJ7bxeBgGtx5UtR5leNm49VmfHGqIffX4FKacHbI3H6UyNSHQknBg==",
1230+ "path": "system.diagnostics.tracing/4.1.0",
1231+ "hashPath": "system.diagnostics.tracing.4.1.0.nupkg.sha512"
1232+ },
1233+ "System.Dynamic.Runtime/4.0.11": {
1234+ "type": "package",
1235+ "serviceable": true,
1236+ "sha512": "sha512-db34f6LHYM0U0JpE+sOmjar27BnqTVkbLJhgfwMpTdgTigG/Hna3m2MYVwnFzGGKnEJk2UXFuoVTr8WUbU91/A==",
1237+ "path": "system.dynamic.runtime/4.0.11",
1238+ "hashPath": "system.dynamic.runtime.4.0.11.nupkg.sha512"
1239+ },
1240+ "System.Globalization/4.3.0": {
1241+ "type": "package",
1242+ "serviceable": true,
1243+ "sha512": "sha512-kYdVd2f2PAdFGblzFswE4hkNANJBKRmsfa2X5LG2AcWE1c7/4t0pYae1L8vfZ5xvE2nK/R9JprtToA61OSHWIg==",
1244+ "path": "system.globalization/4.3.0",
1245+ "hashPath": "system.globalization.4.3.0.nupkg.sha512"
1246+ },
1247+ "System.Globalization.Extensions/4.0.1": {
1248+ "type": "package",
1249+ "serviceable": true,
1250+ "sha512": "sha512-KKo23iKeOaIg61SSXwjANN7QYDr/3op3OWGGzDzz7mypx0Za0fZSeG0l6cco8Ntp8YMYkIQcAqlk8yhm5/Uhcg==",
1251+ "path": "system.globalization.extensions/4.0.1",
1252+ "hashPath": "system.globalization.extensions.4.0.1.nupkg.sha512"
1253+ },
1254+ "System.IO/4.3.0": {
1255+ "type": "package",
1256+ "serviceable": true,
1257+ "sha512": "sha512-3qjaHvxQPDpSOYICjUoTsmoq5u6QJAFRUITgeT/4gqkF1bajbSmb1kwSxEA8AHlofqgcKJcM8udgieRNhaJ5Cg==",
1258+ "path": "system.io/4.3.0",
1259+ "hashPath": "system.io.4.3.0.nupkg.sha512"
1260+ },
1261+ "System.IO.FileSystem/4.0.1": {
1262+ "type": "package",
1263+ "serviceable": true,
1264+ "sha512": "sha512-IBErlVq5jOggAD69bg1t0pJcHaDbJbWNUZTPI96fkYWzwYbN6D9wRHMULLDd9dHsl7C2YsxXL31LMfPI1SWt8w==",
1265+ "path": "system.io.filesystem/4.0.1",
1266+ "hashPath": "system.io.filesystem.4.0.1.nupkg.sha512"
1267+ },
1268+ "System.IO.FileSystem.Primitives/4.0.1": {
1269+ "type": "package",
1270+ "serviceable": true,
1271+ "sha512": "sha512-kWkKD203JJKxJeE74p8aF8y4Qc9r9WQx4C0cHzHPrY3fv/L/IhWnyCHaFJ3H1QPOH6A93whlQ2vG5nHlBDvzWQ==",
1272+ "path": "system.io.filesystem.primitives/4.0.1",
1273+ "hashPath": "system.io.filesystem.primitives.4.0.1.nupkg.sha512"
1274+ },
1275+ "System.Linq/4.1.0": {
1276+ "type": "package",
1277+ "serviceable": true,
1278+ "sha512": "sha512-bQ0iYFOQI0nuTnt+NQADns6ucV4DUvMdwN6CbkB1yj8i7arTGiTN5eok1kQwdnnNWSDZfIUySQY+J3d5KjWn0g==",
1279+ "path": "system.linq/4.1.0",
1280+ "hashPath": "system.linq.4.1.0.nupkg.sha512"
1281+ },
1282+ "System.Linq.Expressions/4.1.0": {
1283+ "type": "package",
1284+ "serviceable": true,
1285+ "sha512": "sha512-I+y02iqkgmCAyfbqOmSDOgqdZQ5tTj80Akm5BPSS8EeB0VGWdy6X1KCoYe8Pk6pwDoAKZUOdLVxnTJcExiv5zw==",
1286+ "path": "system.linq.expressions/4.1.0",
1287+ "hashPath": "system.linq.expressions.4.1.0.nupkg.sha512"
1288+ },
1289+ "System.ObjectModel/4.0.12": {
1290+ "type": "package",
1291+ "serviceable": true,
1292+ "sha512": "sha512-tAgJM1xt3ytyMoW4qn4wIqgJYm7L7TShRZG4+Q4Qsi2PCcj96pXN7nRywS9KkB3p/xDUjc2HSwP9SROyPYDYKQ==",
1293+ "path": "system.objectmodel/4.0.12",
1294+ "hashPath": "system.objectmodel.4.0.12.nupkg.sha512"
1295+ },
1296+ "System.Private.DataContractSerialization/4.1.1": {
1297+ "type": "package",
1298+ "serviceable": true,
1299+ "sha512": "sha512-lcqFBUaCZxPiUkA4dlSOoPZGtZsAuuElH2XHgLwGLxd7ZozWetV5yiz0qGAV2AUYOqw97MtZBjbLMN16Xz4vXA==",
1300+ "path": "system.private.datacontractserialization/4.1.1",
1301+ "hashPath": "system.private.datacontractserialization.4.1.1.nupkg.sha512"
1302+ },
1303+ "System.Reflection/4.3.0": {
1304+ "type": "package",
1305+ "serviceable": true,
1306+ "sha512": "sha512-KMiAFoW7MfJGa9nDFNcfu+FpEdiHpWgTcS2HdMpDvt9saK3y/G4GwprPyzqjFH9NTaGPQeWNHU+iDlDILj96aQ==",
1307+ "path": "system.reflection/4.3.0",
1308+ "hashPath": "system.reflection.4.3.0.nupkg.sha512"
1309+ },
1310+ "System.Reflection.Emit/4.0.1": {
1311+ "type": "package",
1312+ "serviceable": true,
1313+ "sha512": "sha512-P2wqAj72fFjpP6wb9nSfDqNBMab+2ovzSDzUZK7MVIm54tBJEPr9jWfSjjoTpPwj1LeKcmX3vr0ttyjSSFM47g==",
1314+ "path": "system.reflection.emit/4.0.1",
1315+ "hashPath": "system.reflection.emit.4.0.1.nupkg.sha512"
1316+ },
1317+ "System.Reflection.Emit.ILGeneration/4.0.1": {
1318+ "type": "package",
1319+ "serviceable": true,
1320+ "sha512": "sha512-Ov6dU8Bu15Bc7zuqttgHF12J5lwSWyTf1S+FJouUXVMSqImLZzYaQ+vRr1rQ0OZ0HqsrwWl4dsKHELckQkVpgA==",
1321+ "path": "system.reflection.emit.ilgeneration/4.0.1",
1322+ "hashPath": "system.reflection.emit.ilgeneration.4.0.1.nupkg.sha512"
1323+ },
1324+ "System.Reflection.Emit.Lightweight/4.0.1": {
1325+ "type": "package",
1326+ "serviceable": true,
1327+ "sha512": "sha512-sSzHHXueZ5Uh0OLpUQprhr+ZYJrLPA2Cmr4gn0wj9+FftNKXx8RIMKvO9qnjk2ebPYUjZ+F2ulGdPOsvj+MEjA==",
1328+ "path": "system.reflection.emit.lightweight/4.0.1",
1329+ "hashPath": "system.reflection.emit.lightweight.4.0.1.nupkg.sha512"
1330+ },
1331+ "System.Reflection.Extensions/4.0.1": {
1332+ "type": "package",
1333+ "serviceable": true,
1334+ "sha512": "sha512-GYrtRsZcMuHF3sbmRHfMYpvxZoIN2bQGrYGerUiWLEkqdEUQZhH3TRSaC/oI4wO0II1RKBPlpIa1TOMxIcOOzQ==",
1335+ "path": "system.reflection.extensions/4.0.1",
1336+ "hashPath": "system.reflection.extensions.4.0.1.nupkg.sha512"
1337+ },
1338+ "System.Reflection.Metadata/1.3.0": {
1339+ "type": "package",
1340+ "serviceable": true,
1341+ "sha512": "sha512-jMSCxA4LSyKBGRDm/WtfkO03FkcgRzHxwvQRib1bm2GZ8ifKM1MX1al6breGCEQK280mdl9uQS7JNPXRYk90jw==",
1342+ "path": "system.reflection.metadata/1.3.0",
1343+ "hashPath": "system.reflection.metadata.1.3.0.nupkg.sha512"
1344+ },
1345+ "System.Reflection.Primitives/4.3.0": {
1346+ "type": "package",
1347+ "serviceable": true,
1348+ "sha512": "sha512-5RXItQz5As4xN2/YUDxdpsEkMhvw3e6aNveFXUn4Hl/udNTCNhnKp8lT9fnc3MhvGKh1baak5CovpuQUXHAlIA==",
1349+ "path": "system.reflection.primitives/4.3.0",
1350+ "hashPath": "system.reflection.primitives.4.3.0.nupkg.sha512"
1351+ },
1352+ "System.Reflection.TypeExtensions/4.1.0": {
1353+ "type": "package",
1354+ "serviceable": true,
1355+ "sha512": "sha512-tsQ/ptQ3H5FYfON8lL4MxRk/8kFyE0A+tGPXmVP967cT/gzLHYxIejIYSxp4JmIeFHVP78g/F2FE1mUUTbDtrg==",
1356+ "path": "system.reflection.typeextensions/4.1.0",
1357+ "hashPath": "system.reflection.typeextensions.4.1.0.nupkg.sha512"
1358+ },
1359+ "System.Resources.ResourceManager/4.3.0": {
1360+ "type": "package",
1361+ "serviceable": true,
1362+ "sha512": "sha512-/zrcPkkWdZmI4F92gL/TPumP98AVDu/Wxr3CSJGQQ+XN6wbRZcyfSKVoPo17ilb3iOr0cCRqJInGwNMolqhS8A==",
1363+ "path": "system.resources.resourcemanager/4.3.0",
1364+ "hashPath": "system.resources.resourcemanager.4.3.0.nupkg.sha512"
1365+ },
1366+ "System.Runtime/4.3.0": {
1367+ "type": "package",
1368+ "serviceable": true,
1369+ "sha512": "sha512-JufQi0vPQ0xGnAczR13AUFglDyVYt4Kqnz1AZaiKZ5+GICq0/1MH/mO/eAJHt/mHW1zjKBJd7kV26SrxddAhiw==",
1370+ "path": "system.runtime/4.3.0",
1371+ "hashPath": "system.runtime.4.3.0.nupkg.sha512"
1372+ },
1373+ "System.Runtime.Extensions/4.3.0": {
1374+ "type": "package",
1375+ "serviceable": true,
1376+ "sha512": "sha512-guW0uK0fn5fcJJ1tJVXYd7/1h5F+pea1r7FLSOz/f8vPEqbR2ZAknuRDvTQ8PzAilDveOxNjSfr0CHfIQfFk8g==",
1377+ "path": "system.runtime.extensions/4.3.0",
1378+ "hashPath": "system.runtime.extensions.4.3.0.nupkg.sha512"
1379+ },
1380+ "System.Runtime.Handles/4.0.1": {
1381+ "type": "package",
1382+ "serviceable": true,
1383+ "sha512": "sha512-nCJvEKguXEvk2ymk1gqj625vVnlK3/xdGzx0vOKicQkoquaTBJTP13AIYkocSUwHCLNBwUbXTqTWGDxBTWpt7g==",
1384+ "path": "system.runtime.handles/4.0.1",
1385+ "hashPath": "system.runtime.handles.4.0.1.nupkg.sha512"
1386+ },
1387+ "System.Runtime.InteropServices/4.1.0": {
1388+ "type": "package",
1389+ "serviceable": true,
1390+ "sha512": "sha512-16eu3kjHS633yYdkjwShDHZLRNMKVi/s0bY8ODiqJ2RfMhDMAwxZaUaWVnZ2P71kr/or+X9o/xFWtNqz8ivieQ==",
1391+ "path": "system.runtime.interopservices/4.1.0",
1392+ "hashPath": "system.runtime.interopservices.4.1.0.nupkg.sha512"
1393+ },
1394+ "System.Runtime.InteropServices.RuntimeInformation/4.0.0": {
1395+ "type": "package",
1396+ "serviceable": true,
1397+ "sha512": "sha512-hWPhJxc453RCa8Z29O91EmfGeZIHX1ZH2A8L6lYQVSaKzku2DfArSfMEb1/MYYzPQRJZeu0c9dmYeJKxW5Fgng==",
1398+ "path": "system.runtime.interopservices.runtimeinformation/4.0.0",
1399+ "hashPath": "system.runtime.interopservices.runtimeinformation.4.0.0.nupkg.sha512"
1400+ },
1401+ "System.Runtime.Loader/4.0.0": {
1402+ "type": "package",
1403+ "serviceable": true,
1404+ "sha512": "sha512-4UN78GOVU/mbDFcXkEWtetJT/sJ0yic2gGk1HSlSpWI0TDf421xnrZTDZnwNBapk1GQeYN7U1lTj/aQB1by6ow==",
1405+ "path": "system.runtime.loader/4.0.0",
1406+ "hashPath": "system.runtime.loader.4.0.0.nupkg.sha512"
1407+ },
1408+ "System.Runtime.Serialization.Json/4.0.2": {
1409+ "type": "package",
1410+ "serviceable": true,
1411+ "sha512": "sha512-+7DIJhnKYgCzUgcLbVTtRQb2l1M0FP549XFlFkQM5lmNiUBl44AfNbx4bz61xA8PzLtlYwfmif4JJJW7MPPnjg==",
1412+ "path": "system.runtime.serialization.json/4.0.2",
1413+ "hashPath": "system.runtime.serialization.json.4.0.2.nupkg.sha512"
1414+ },
1415+ "System.Runtime.Serialization.Primitives/4.1.1": {
1416+ "type": "package",
1417+ "serviceable": true,
1418+ "sha512": "sha512-HZ6Du5QrTG8MNJbf4e4qMO3JRAkIboGT5Fk804uZtg3Gq516S7hAqTm2UZKUHa7/6HUGdVy3AqMQKbns06G/cg==",
1419+ "path": "system.runtime.serialization.primitives/4.1.1",
1420+ "hashPath": "system.runtime.serialization.primitives.4.1.1.nupkg.sha512"
1421+ },
1422+ "System.Text.Encoding/4.3.0": {
1423+ "type": "package",
1424+ "serviceable": true,
1425+ "sha512": "sha512-BiIg+KWaSDOITze6jGQynxg64naAPtqGHBwDrLaCtixsa5bKiR8dpPOHA7ge3C0JJQizJE+sfkz1wV+BAKAYZw==",
1426+ "path": "system.text.encoding/4.3.0",
1427+ "hashPath": "system.text.encoding.4.3.0.nupkg.sha512"
1428+ },
1429+ "System.Text.Encoding.Extensions/4.0.11": {
1430+ "type": "package",
1431+ "serviceable": true,
1432+ "sha512": "sha512-jtbiTDtvfLYgXn8PTfWI+SiBs51rrmO4AAckx4KR6vFK9Wzf6tI8kcRdsYQNwriUeQ1+CtQbM1W4cMbLXnj/OQ==",
1433+ "path": "system.text.encoding.extensions/4.0.11",
1434+ "hashPath": "system.text.encoding.extensions.4.0.11.nupkg.sha512"
1435+ },
1436+ "System.Text.RegularExpressions/4.1.0": {
1437+ "type": "package",
1438+ "serviceable": true,
1439+ "sha512": "sha512-i88YCXpRTjCnoSQZtdlHkAOx4KNNik4hMy83n0+Ftlb7jvV6ZiZWMpnEZHhjBp6hQVh8gWd/iKNPzlPF7iyA2g==",
1440+ "path": "system.text.regularexpressions/4.1.0",
1441+ "hashPath": "system.text.regularexpressions.4.1.0.nupkg.sha512"
1442+ },
1443+ "System.Threading/4.3.0": {
1444+ "type": "package",
1445+ "serviceable": true,
1446+ "sha512": "sha512-VkUS0kOBcUf3Wwm0TSbrevDDZ6BlM+b/HRiapRFWjM5O0NS0LviG0glKmFK+hhPDd1XFeSdU1GmlLhb2CoVpIw==",
1447+ "path": "system.threading/4.3.0",
1448+ "hashPath": "system.threading.4.3.0.nupkg.sha512"
1449+ },
1450+ "System.Threading.Tasks/4.3.0": {
1451+ "type": "package",
1452+ "serviceable": true,
1453+ "sha512": "sha512-LbSxKEdOUhVe8BezB/9uOGGppt+nZf6e1VFyw6v3DN6lqitm0OSn2uXMOdtP0M3W4iMcqcivm2J6UgqiwwnXiA==",
1454+ "path": "system.threading.tasks/4.3.0",
1455+ "hashPath": "system.threading.tasks.4.3.0.nupkg.sha512"
1456+ },
1457+ "System.Threading.Tasks.Extensions/4.0.0": {
1458+ "type": "package",
1459+ "serviceable": true,
1460+ "sha512": "sha512-pH4FZDsZQ/WmgJtN4LWYmRdJAEeVkyriSwrv2Teoe5FOU0Yxlb6II6GL8dBPOfRmutHGATduj3ooMt7dJ2+i+w==",
1461+ "path": "system.threading.tasks.extensions/4.0.0",
1462+ "hashPath": "system.threading.tasks.extensions.4.0.0.nupkg.sha512"
1463+ },
1464+ "System.Threading.Thread/4.0.0": {
1465+ "type": "package",
1466+ "serviceable": true,
1467+ "sha512": "sha512-gIdJqDXlOr5W9zeqFErLw3dsOsiShSCYtF9SEHitACycmvNvY8odf9kiKvp6V7aibc8C4HzzNBkWXjyfn7plbQ==",
1468+ "path": "system.threading.thread/4.0.0",
1469+ "hashPath": "system.threading.thread.4.0.0.nupkg.sha512"
1470+ },
1471+ "System.Threading.ThreadPool/4.0.10": {
1472+ "type": "package",
1473+ "serviceable": true,
1474+ "sha512": "sha512-IMXgB5Vf/5Qw1kpoVgJMOvUO1l32aC+qC3OaIZjWJOjvcxuxNWOK2ZTWWYXfij22NHxT2j1yWX5vlAeQWld9vA==",
1475+ "path": "system.threading.threadpool/4.0.10",
1476+ "hashPath": "system.threading.threadpool.4.0.10.nupkg.sha512"
1477+ },
1478+ "System.Xml.ReaderWriter/4.0.11": {
1479+ "type": "package",
1480+ "serviceable": true,
1481+ "sha512": "sha512-ZIiLPsf67YZ9zgr31vzrFaYQqxRPX9cVHjtPSnmx4eN6lbS/yEyYNr2vs1doGDEscF0tjCZFsk9yUg1sC9e8tg==",
1482+ "path": "system.xml.readerwriter/4.0.11",
1483+ "hashPath": "system.xml.readerwriter.4.0.11.nupkg.sha512"
1484+ },
1485+ "System.Xml.XDocument/4.0.11": {
1486+ "type": "package",
1487+ "serviceable": true,
1488+ "sha512": "sha512-Mk2mKmPi0nWaoiYeotq1dgeNK1fqWh61+EK+w4Wu8SWuTYLzpUnschb59bJtGywaPq7SmTuPf44wrXRwbIrukg==",
1489+ "path": "system.xml.xdocument/4.0.11",
1490+ "hashPath": "system.xml.xdocument.4.0.11.nupkg.sha512"
1491+ },
1492+ "System.Xml.XmlDocument/4.0.1": {
1493+ "type": "package",
1494+ "serviceable": true,
1495+ "sha512": "sha512-2eZu6IP+etFVBBFUFzw2w6J21DqIN5eL9Y8r8JfJWUmV28Z5P0SNU01oCisVHQgHsDhHPnmq2s1hJrJCFZWloQ==",
1496+ "path": "system.xml.xmldocument/4.0.1",
1497+ "hashPath": "system.xml.xmldocument.4.0.1.nupkg.sha512"
1498+ },
1499+ "System.Xml.XmlSerializer/4.0.11": {
1500+ "type": "package",
1501+ "serviceable": true,
1502+ "sha512": "sha512-FrazwwqfIXTfq23mfv4zH+BjqkSFNaNFBtjzu3I9NRmG8EELYyrv/fJnttCIwRMFRR/YKXF1hmsMmMEnl55HGw==",
1503+ "path": "system.xml.xmlserializer/4.0.11",
1504+ "hashPath": "system.xml.xmlserializer.4.0.11.nupkg.sha512"
1505+ },
1506+ "System.Xml.XPath/4.0.1": {
1507+ "type": "package",
1508+ "serviceable": true,
1509+ "sha512": "sha512-UWd1H+1IJ9Wlq5nognZ/XJdyj8qPE4XufBUkAW59ijsCPjZkZe0MUzKKJFBr+ZWBe5Wq1u1d5f2CYgE93uH7DA==",
1510+ "path": "system.xml.xpath/4.0.1",
1511+ "hashPath": "system.xml.xpath.4.0.1.nupkg.sha512"
1512+ },
1513+ "System.Xml.XPath.XmlDocument/4.0.1": {
1514+ "type": "package",
1515+ "serviceable": true,
1516+ "sha512": "sha512-Zm2BdeanuncYs3NhCj4c9e1x3EXFzFBVv2wPEc/Dj4ZbI9R8ecLSR5frAsx4zJCPBtKQreQ7Q/KxJEohJZbfzA==",
1517+ "path": "system.xml.xpath.xmldocument/4.0.1",
1518+ "hashPath": "system.xml.xpath.xmldocument.4.0.1.nupkg.sha512"
1519+ },
1520+ "OfficeImageReducer/1.0.0": {
1521+ "type": "project",
1522+ "serviceable": false,
1523+ "sha512": ""
1524+ }
1525+ }
1526+}
\ No newline at end of file
--- tags/OfficeImageReducer_0402-190321/UnitTestProject1/bin/Release/netcoreapp2.1/UnitTestProject1.runtimeconfig.dev.json (nonexistent)
+++ tags/OfficeImageReducer_0402-190321/UnitTestProject1/bin/Release/netcoreapp2.1/UnitTestProject1.runtimeconfig.dev.json (revision 146)
@@ -0,0 +1,9 @@
1+{
2+ "runtimeOptions": {
3+ "additionalProbingPaths": [
4+ "C:\\Users\\931101\\.dotnet\\store\\|arch|\\|tfm|",
5+ "C:\\Users\\931101\\.nuget\\packages",
6+ "C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder"
7+ ]
8+ }
9+}
\ No newline at end of file
--- tags/OfficeImageReducer_0402-190321/UnitTestProject1/bin/Release/netcoreapp2.1/UnitTestProject1.runtimeconfig.json (nonexistent)
+++ tags/OfficeImageReducer_0402-190321/UnitTestProject1/bin/Release/netcoreapp2.1/UnitTestProject1.runtimeconfig.json (revision 146)
@@ -0,0 +1,9 @@
1+{
2+ "runtimeOptions": {
3+ "tfm": "netcoreapp2.1",
4+ "framework": {
5+ "name": "Microsoft.NETCore.App",
6+ "version": "2.1.0"
7+ }
8+ }
9+}
\ No newline at end of file
--- tags/OfficeImageReducer_0402-190321/UnitTestProject1/UnitTest1.cs (nonexistent)
+++ tags/OfficeImageReducer_0402-190321/UnitTestProject1/UnitTest1.cs (revision 146)
@@ -0,0 +1,19 @@
1+using Microsoft.VisualStudio.TestTools.UnitTesting;
2+
3+namespace UnitTestProject1
4+{
5+ [TestClass]
6+ public class UnitTest1
7+ {
8+ [TestMethod]
9+ [Timeout(20000)]
10+ public void TestMethod1()
11+ {
12+ var a =OfficeImageReducer.ClassMyCommon.Left("abcdef", 3);
13+ Assert.AreEqual(a, "abc","テスト1に失敗");
14+
15+ var b = OfficeImageReducer.ClassMyCommon.Right("abcdef", 4);
16+ Assert.AreEqual(b, "cdef","テスト2に失敗");
17+ }
18+ }
19+}
\ No newline at end of file