2016-06-15 17 views
0

私はオンラインオンリーに設定されたClickOnceアプリを開発中です。私は、このリンクが含まれている同じディレクトリにHTMLページで、内部IISサーバーに公開:オンライン専用のClickOnceアプリがウェブリンク経由で更新されない

<a href="MyAppName.application"></a> 

展開は私のプロジェクトのpublishターゲットによって生成されたHTMLページ以外のすべてのファイルと、そのようになっています。

MyAppName 
-> Application Files 
    -> MyAppName_2213_20_0_65 
     -> <The published files> 
-> default.html 
-> MyAppName.application 

私がリンクをクリックすると、確認のプロンプトが表示されずにすぐにアプリケーションが実行され、aboutボックスから古いバージョンが表示されます。ファイル共有を参照してエクスプローラでMyAppName.applicationをダブルクリックして起動すると、実行するかどうかを確認するプロンプトが表示され、ダウンロードしてエラーが表示されます。

Unable to install this application because an application with the same identity is already installed. To install this application, either modify the manifest version for this application or uninstall the preexisting application.

ビルドプロセスの一環として、プロジェクトのInstallUrlプロパティをhttp://ourserver/MyAppName/MyAppName.applicationに設定しました。それは間違っていますか?リンクを含むHTMLページですか?紛争を起こしている「アイデンティティ」をどうやって判断していますか?

このアプリはオンラインのみのため、インストールされていないため、[プログラムと機能]のコントロールパネルに表示されません(そのため、エラーメッセージの一部が該当しません)。

私はClickOnceを初めて使用しています。私はいくつかの有用な情報が残っているかどうか教えてください。

更新

私は、Visual Studioコマンドプロンプトからmage -ccを実行する場合、新しいバージョンではなく古いものを起動します。私は周りよりつついたよう

アップデート2

は、私が間違って見え、問題になる可能性が何かを見ています。あなたは上記の不一致を見ることができます

... 
    <assemblyIdentity name="MyAppName" version="1.0.0.0" ... 
... 
    <dependency> 
    <dependentAssembly dependencyType="install" codebase="Application Files\MyAppName_2213_20_0_65\MyAppName.exe.manifest" size="82044"> 
     <assemblyIdentity name="MyAppName.exe" version="1.0.0.0" ... 
... 

:私は私のMyAppName.applicationファイル(展開マニフェスト)で次の2行を参照してください。 MyAppName_2213_20_0_65に展開していますが、exeのバージョン番号は1.0.0.0と考えています。なぜそれがそれを考えるのか分かりません。私のプロジェクトは、このラインを持つビルドの一部として生成されますファイルが含まれます。

<Target Name="BeforePublish"> 
    <GetAssemblyIdentity AssemblyFiles="$(TargetPath)"> 
    <Output TaskParameter="Assemblies" ItemName="MyAppAssemblyInfo" /> 
    </GetAssemblyIdentity> 
    <PropertyGroup> 
    <ApplicationVersion>%(MyAppAssemblyInfo.Version)</ApplicationVersion> 
    <InstallUrl>$(INSTALL_URL)</InstallUrl> 
    </PropertyGroup> 
</Target> 

が行われます。そして、

[assembly: AssemblyVersion("2213.20.0.65")] 

、公開バージョン番号を設定するために、私は私のcsprojファイルでこれを持っています私の実行ファイルのためにリストアップされたアセンブリバージョンも問題ありますか?もしそうなら、なぜ1.0.0.0に固執し、それが更新されたバージョンのダウンロードに影響しているのでしょうか?

答えて

0

私の2回目の更新で私は正しい軌道に乗りました。この問題は実際にはassemblyIdentity属性のバージョン番号が正しくありませんでした。それを修正するために、私はもはやBeforePublishターゲットを使用していません。代わりに、私はMSBuildを呼び出すと、ApplicationVersionを渡します。

"%msbuild_path%" MyAppName.csproj /target:Publish /p:ApplicationVersion=%VERSION% 
関連する問題