0

Nuget パッケージを介して Roselyn アセンブリを参照する Clickonce アプリケーションをデプロイしようとしています。

Roslyn Nuget パッケージのバージョンは 1.2.20906.2 ですが、次のようになります。

  1. packagesフォルダー内 の dll プロパティを見ると、DLL のバージョンが 1.2.20906.1であることがわかります
  2. VS2012 Solution Explorerで参照プロパティを見ると、バージョン 1.2.0.0が表示されます(パスは Nuget パッケージ dll を指しています)。

Local copySpecific versionすべての Roslyn 参照に対してtrue に設定されます。

Clickonce を公開すると、含まれて展開された Dll のバージョンは 1.2.20906.1 ですが、Clickonce マニフェストには次のように記載されています。

<dependency>
    <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Roslyn.Services.dll" size="1345672">
        <assemblyIdentity name="Roslyn.Services" version="1.2.0.0" publicKeyToken="31BF3856AD364E35" language="neutral" processorArchitecture="msil" />
...

したがって、マニフェストのバージョンは 1.2.0.0 です。

Clickonce をクライアントにインストールしようとすると、エラー メッセージが表示されます (フランス語からの翻訳)。Reference in the manifest does not match the identity of the downloaded assembly Roslyn.Services.dll

クライアント マシンは Windows 7 x86 です。

VS プロジェクトでAnyCPUx86をターゲットにしようとしましたが、成功しませんでした。

ターゲット マシンに xcopy を介してデプロイすると、アプリは正常に動作します。

どんな助けでも感謝します。

4

1 に答える 1

0

VS の参照はどこを指していますか? パッケージフォルダーを指していますか?そうでない場合は、展開するアセンブリであるため、そうする必要があります。参照を削除して再度追加し、デプロイするバージョンの参照を指す必要があります。GAC で古いバージョンにアクセスしてから、新しいバージョンを公開している可能性がありますが、これは機能しません。ClickOnce は非常に具体的であり、バージョンが一致している必要があります。

于 2013-09-06T19:09:18.620 に答える