C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ツリー一括表示

System.IO.Compressionの依存関係 /tomoyasu (21/01/13(Wed) 13:51) #96709
Re[1]: System.IO.Compressionの依存関係 /とっちゃん (21/01/13(Wed) 17:56) #96710
  └ Re[2]: System.IO.Compressionの依存関係 /tomoyasu (21/01/14(Thu) 13:34) #96712
    └ Re[3]: System.IO.Compressionの依存関係 /とっちゃん (21/01/14(Thu) 14:20) #96715
      └ Re[4]: System.IO.Compressionの依存関係 /tomoyasu (21/01/15(Fri) 13:51) #96721 解決済み


親記事 / ▼[ 96710 ]
■96709 / 親階層)  System.IO.Compressionの依存関係
□投稿者/ tomoyasu (1回)-(2021/01/13(Wed) 13:51:08)

分類:[VB.NET/VB2005 以降] 

(アプリ・セットアッププロジェクトの作成はVS2013を使用・言語VB)

.Net Framework4.5を使用しているアプリを修正し、
セットアッププロジェクトでインストーラーを作成しようとしたのですが、
セットアッププロジェクトのビルドで以下のようなワーニングが出ました。

WARNING: 'System.IO.Compression.FileSystem.dll' should be excluded because its source file 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.IO.Compression.FileSystem\v4.0_4.0.0.0__b77a5c561934e089\System.IO.Compression.FileSystem.dll' is under Windows System File Protection.
WARNING: 'System.IO.Compression.dll' should be excluded because its source file 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\System.IO.Compression\v4.0_4.0.0.0__b77a5c561934e089\System.IO.Compression.dll' is under Windows System File Protection.

ちなみに、System.IO.Compression等はzipファイルの解凍に使用しています。

セットアッププロジェクトのDetected Dependencies(検出された依存関係)を見ると
上記DLLが表示されているのですが、これは.Net Frameworkの一部ではないのでしょうか?
なぜこれらDLLが依存関係に直接表示されているのかを知りたいです。

また、ワーニングの内容を見ると、これらのdllは除外設定すべきとありますが、
単純に除外設定でよいのでしょうか?
(一応、除外設定すればこれらDLLが配布されることはありません。)

[ □ Tree ] 返信 編集キー/

▲[ 96709 ] / ▼[ 96712 ]
■96710 / 1階層)  Re[1]: System.IO.Compressionの依存関係
□投稿者/ とっちゃん (712回)-(2021/01/13(Wed) 17:56:57)
No96709 (tomoyasu さん) に返信
> (アプリ・セットアッププロジェクトの作成はVS2013を使用・言語VB)
>
> .Net Framework4.5を使用しているアプリを修正し、
> セットアッププロジェクトでインストーラーを作成しようとしたのですが、
> セットアッププロジェクトのビルドで以下のようなワーニングが出ました。
>

> セットアッププロジェクトのDetected Dependencies(検出された依存関係)を見ると
> 上記DLLが表示されているのですが、これは.Net Frameworkの一部ではないのでしょうか?
> なぜこれらDLLが依存関係に直接表示されているのかを知りたいです。
>
> また、ワーニングの内容を見ると、これらのdllは除外設定すべきとありますが、
> 単純に除外設定でよいのでしょうか?
> (一応、除外設定すればこれらDLLが配布されることはありません。)
>
VS2013環境はもう持っていないので詳細がわからない部分はありますが、
おそらく、プロジェクトのツリーに、Detected Dependencies というフォルダがあり
その中に「Microsoft.NET Framework」という項目があると思います。

ここのプロパティを表示するとそこに「Version」があり
具体的な .NET Framework のバージョンを指定することができるようになっていると思います。

ここを、実際に動作環境として設定したい .NET Framework のバージョンに変更してみてください。

恐らくそれで System.IO.Compression.dll が別途リストアップされることはなくなると思います。

[ 親 96709 / □ Tree ] 返信 編集キー/

▲[ 96710 ] / ▼[ 96715 ]
■96712 / 2階層)  Re[2]: System.IO.Compressionの依存関係
□投稿者/ tomoyasu (2回)-(2021/01/14(Thu) 13:34:29)
2021/01/14(Thu) 13:38:51 編集(投稿者)

No96710 (とっちゃん さん) に返信

> おそらく、プロジェクトのツリーに、Detected Dependencies というフォルダがあり
> その中に「Microsoft.NET Framework」という項目があると思います。
>
> ここのプロパティを表示するとそこに「Version」があり
> 具体的な .NET Framework のバージョンを指定することができるようになっていると思います。
>
> ここを、実際に動作環境として設定したい .NET Framework のバージョンに変更してみてください。
>
> 恐らくそれで System.IO.Compression.dll が別途リストアップされることはなくなると思います。
>

レスありがとうございます。
プロジェクトのツリーの「Detected Dependencies」フォルダ内に
確かに「Microsoft.NET Framework」の項目があります。
ただし、この項目を左クリック・右クリックしても何も表示されません。
そこで、これをダブルクリックしてみたら、左側のメイン領域に「Launch Conditions (Setup)」のタブが開き、
「.NET Framework Launch Condition Properties」というプロパティウィンドウが表示されました。
でも、これはインストーラーの起動条件なので、ご教示頂いたものとは違いますよね?
上記プロパティウインドウ内の「Version」を色々と変えても、
「System.IO.Compression.dll」等が「Detected Dependencies」内に表示されたままでした。

ちなみに、以前は「System.IO.Compression.dll」等が「Detected Dependencies」内に表示されるようなことはなかったように思います。
Windows Updateか何かの関係でしょうか?
[ 親 96709 / □ Tree ] 返信 編集キー/

▲[ 96712 ] / ▼[ 96721 ]
■96715 / 3階層)  Re[3]: System.IO.Compressionの依存関係
□投稿者/ とっちゃん (713回)-(2021/01/14(Thu) 14:20:08)
No96712 (tomoyasu さん) に返信
> レスありがとうございます。
> プロジェクトのツリーの「Detected Dependencies」フォルダ内に
> 確かに「Microsoft.NET Framework」の項目があります。
> ただし、この項目を左クリック・右クリックしても何も表示されません。
> そこで、これをダブルクリックしてみたら、左側のメイン領域に「Launch Conditions (Setup)」のタブが開き、
> 「.NET Framework Launch Condition Properties」というプロパティウィンドウが表示されました。
> でも、これはインストーラーの起動条件なので、ご教示頂いたものとは違いますよね?
> 上記プロパティウインドウ内の「Version」を色々と変えても、
> 「System.IO.Compression.dll」等が「Detected Dependencies」内に表示されたままでした。
>
> ちなみに、以前は「System.IO.Compression.dll」等が「Detected Dependencies」内に表示されるようなことはなかったように思います。
> Windows Updateか何かの関係でしょうか?

あれ?出たままでしたか?そこで設定じゃなかったかな?
何分、VSのセットアッププロジェクトでいろいろやってたのは15年以上前のことばかりなのでほとんど覚えてない…orz

一応確認。
設定を変更した後、プロジェクトのツリーの「Detected Dependencies」を右クリックすると出る依存関係の更新は行っていますか?
たしか、これもやらないとだめだった気がします。

それでも表示されてしまうという場合は、面倒ですがファイルごとに除外する必要があります。

> また、ワーニングの内容を見ると、これらのdllは除外設定すべきとありますが、
> 単純に除外設定でよいのでしょうか?
> (一応、除外設定すればこれらDLLが配布されることはありません。)
> 除外するとインストーラに含まれなくなります。

と、あったので一応。

VSのインストーラプロジェクトは、.NET Framework のコンポーネントかどうかの判定を
セットアッププロジェクトが別途管理しているシステムコンポーネントリストをもとにチェックす形になっています。
(VSに標準搭載されていたころは、専用のマージモジュールの形で実現していたのですが現在どうなってるかは知りません)

インストール対象ファイルにexeやdllを追加した際、自動で依存関係を調査して
リストアップされたファイルが、前述のシステムコンポーネントに含まれていた場合は
自動追加しないという形になっています。

このリストが最新に追従できていないなどの理由がある場合、結果として意図せず列挙されてしまう場合があります。

そういった場合は手動で除外することで回避するという形になります。

今回は、.NET Framework 4.5 に含まれているモジュールであることがわかっているので単に除外するだけで問題はありません。

[ 親 96709 / □ Tree ] 返信 編集キー/

▲[ 96715 ] / 返信無し
■96721 / 4階層)  Re[4]: System.IO.Compressionの依存関係
□投稿者/ tomoyasu (3回)-(2021/01/15(Fri) 13:51:12)
No96715 (とっちゃん さん) に返信

いつもありがとうございます。

> 一応確認。
> 設定を変更した後、プロジェクトのツリーの「Detected Dependencies」を右クリックすると出る依存関係の更新は行っていますか?
> たしか、これもやらないとだめだった気がします。
>
> それでも表示されてしまうという場合は、面倒ですがファイルごとに除外する必要があります。

試してみましたが、依存関係は変わらずでした。


> 今回は、.NET Framework 4.5 に含まれているモジュールであることがわかっているので単に除外するだけで問題はありません。

一応、問題のDLLを除外設定にして作成したインストーラーで、問題なく動作出来ているようですので、
今回は除外設定で解決、とさせて頂きます。
大変お世話になりました。ありがとうございました。
解決済み
[ 親 96709 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -