# 概要

ClickOnceアプリケーションをユーザが更新する際、ユーザの端末内の.NET
Frameworkが4.0以前のものであれば強制的に4.5以降のバージョンにアップデートする方法を探しています。

# 詳細

ClickOnceアプリケーションを発行し、ダウンロード専用サーバからダウンロードする際、下記のようなエラーがポップアップ出るようになりました。  
※アプリを作成した.NetFrameworkのバージョンは4.5、ダウンロードしようとしたバージョンは3.5です。

```

    Cannot continue. The application is improperly formatted.Contact the application vendor for assistance.
    
```

詳細を見ると次のようなエラーです。

```

    ERROR SUMMARY
    Exception reading manifest from https://hogehoge : the manifest may not be valid or the file could not be opened.
    Manifest XML signature is not valid.
    SignatureDescription could not be created for the signature algorithm supplied.
    
```

[こちらの記事](https://stackoverflow.com/questions/12826798/manifest-xml-signature-
is-not-valid)を見たところ、これは.NET
Frameworkの4.0から4.5へのバージョンアップの際、SHAの形式が変更されたことに起因していることがわかりました。

そのため、.NET Framework 4.5よりも前のバージョンがインストールされている端末でアプリの更新を行う際には.NET Framework
4.5を強制強制的にダウンロードするようにしたいと考えVisual Studioで次のような設定を行いました。

```

    発行 -> 必須コンポーネントで下記にチェック。
    ・Microsoft.Net FrameWork 4.5（x86およびx64）
    ・Microsoft.Net FrameWork 4.5.1（x86およびx64）
    ・Microsoft.Net FrameWork 4.5.2（x86およびx64）
    ・Windowsインストーラ 4.5
    
    発行 -> 更新で
    ・アプリケーションの更新を確認する　にチェック
    ・アプリケーションの更新を確認する方法を選択してください:
    　アプリケーションの開始前に行う を選択
    
```

しかし、.NET Framework 3.5がインストールされている端末でアプリを更新しようとしても.NET Framework
4.5はインストールされず、エラーも元のままでした。

ClickOnceアプリケーションの必須コンポーネント設定に誤りがございますでしょうか？それともそもそもSHAの変更対応として適切ではないでしょうか？

ご教示よろしくお願いします。

# 動作環境

・.NET Frame Work 4.5  
・.NET Frame Work 4.0以前  
・Visual Studio2013
CC BY-SA 3.0
2015-12-21T07:28:41.653
20249
2015-12-21T07:28:41.653
2017-05-23T12:38:56.083
-1
12459
question
c# visual-studio .net
ClickOnceアプリケーションを起動する端末の.NET Frameworkをアプリ起動時にバージョンアップさせる方法を探しています。