2017-07-11 9 views
0

アップグレードを有効にするために、私はDLLのAssebmlyVersionを修正し、AssemblyFileVersionを変更しませんでした。 AssemblyVersionを変更したと仮定して、インストーラは最新のDLLを自動的に検出し、アップグレード時に置き換えます。しかし、アップグレードで最新のDLLをインストールできませんでした。AssemblyFileVersionが製品バージョンを自動的に変更するのはなぜですか?

AssemblyVersionを変更したときのVS2015プロジェクトでは、それを反映したProductVersionが見つかりませんでした。その後、AssemblyFileVersionを変更すると、バージョンを反映したProudctVersionに気付きました。なぜこのような振る舞いですか?

+1

https://stackoverflow.com/a/23145471/17034 –

答えて

1

AssemblyInfo.csで明示的にAssemblyInformationalVersionを追加すると、アセンブリ>プロパティ>詳細>製品バージョン

[assembly: AssemblyInformationalVersion("1.1.1.1")] 

NOTE影響するように思える:この属性は、デフォルトでは使用できませんが。

また、AssemblyFileVersionは、インストーラーによるデプロイメント関連の作業に使用されていることがわかりました。私の場合、アセンブリのProductVersionとして使用され、AssemblyVersionはAssembly> Property> Details> Product Versionとして使用されません。

0

Visual Studioプロジェクトのアップグレードでは、RemovePreviousVersionプロジェクトの値がTrueに設定されています。また、セットアッププロジェクトのProductVersionをインクリメントし、変更を受け入れます(ProductCodeが変更されます)。この時点で、MSIに関する限りアップグレードが可能です。まだ関連:

https://www.red-gate.com/simple-talk/dotnet/visual-studio/updates-to-setup-projects/

実際にファイルのバージョンは、基本的にあるため、上書きルールで、インクリメントする必要が更新されたファイルを交換するために取得するには、次の

https://msdn.microsoft.com/en-us/library/windows/desktop/aa367835(v=vs.85).aspx

Win32のはこれがあるファイルの場合ファイルバージョン、管理コードの場合はAssemblyFileVersionです。 AssemblyVersionはクライアントアセンブリへのリンクに使用されるため、通常はAssemblyFileVersionだけを変更する方が良いでしょう。これはしばしば変更したくないものです。

関連する問題