web-dev-qa-db-ja.com

MSBuild ClickOnceエラー:「展開とアプリケーションに一致するセキュリティゾーンがありません」

MSBuild を介してClickOnceアプリケーションを公開しようとしています。インストールされているバージョンのWindowsアプリケーションで正常に動作しています。

ただし、installをfalseに設定して、Webからアプリケーションを実行するだけの場合、URLからアプリケーションを実行しようとすると、「デプロイメントとアプリケーションに一致するセキュリティゾーンがありません」というエラーが発生します。これは正常に機能します。 InternetExplorerで。 ChromeとFireFoxでのみエラーメッセージが表示されます。

プロジェクトファイルの設定例を次に示します。

<Project DefaultTargets="Build" xmlns="http://schemas.Microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
  <PropertyGroup>
    <SrcTreeRoot>$(MSBuildProjectDirectory)\..\..\..</SrcTreeRoot>
    <!--ClickOnceDeployFolder>$(WebOutputDir)\AnalyzerPC</ClickOnceDeployFolder-->
    <ProjectGuid>{8205E593-F400-41AE-8D6F-DEA290B2DCF9}</ProjectGuid>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ApplicationIcon>Graphics\EDA Icon.ico</ApplicationIcon>
    <AssemblyName>DASHQueryBuilder</AssemblyName>
    <OutputType>WinExe</OutputType>
    <RootNamespace>TetraData.Analyzer</RootNamespace>
    <FileUpgradeFlags>
    </FileUpgradeFlags>
    <OldToolsVersion>2.0</OldToolsVersion>
    <IsWebBootstrapper>false</IsWebBootstrapper>
    <ManifestCertificateThumbprint>...</ManifestCertificateThumbprint>
    <GenerateManifests>true</GenerateManifests>
    <SignManifests>true</SignManifests>
    <SignAssembly>true</SignAssembly>
    <ManifestKeyFile>$(BuildDir)\Certificates\TetraDataCode.pfx</ManifestKeyFile>
    <ProductVersion>9.0.21022</ProductVersion>
    <PublishUrl>http://localhost/DASHQueryBuilder/</PublishUrl>
    <Install>false</Install>
    <!--InstallFrom>Web</InstallFrom-->
    <UpdateEnabled>false</UpdateEnabled>
    <MapFileExtensions>true</MapFileExtensions>
    <PublisherName>Follett Software Company</PublisherName>
    <TrustUrlParameters>true</TrustUrlParameters>
    <ApplicationRevision>0</ApplicationRevision>
    <UseApplicationTrust>false</UseApplicationTrust>
    <PublishWizardCompleted>true</PublishWizardCompleted>
    <BootstrapperEnabled>false</BootstrapperEnabled>
  </PropertyGroup>
  <Import Project="$(SrcTreeRoot)\Build\TaskInit.Tasks" />
  <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
  <Import Project="$(SrcTreeRoot)\Build\TaskOverrides.Tasks" />
  <Import Project="$(MSBuildProjectDirectory)\Analyzer.csproj" />
  <PropertyGroup>
    <PublishDir>$(WebOutputDir)\DASH Query Builder\</PublishDir>
    <ApplicationVersion>$(MajorMinorVersion).0.0</ApplicationVersion>
  </PropertyGroup>
  <Target Name="BeforeResolveReferences">
    <Copy SourceFiles="$(MSBuildProjectDirectory)\DASHQueryBuilder.config" DestinationFiles="$(MSBuildProjectDirectory)\app.config" />
  </Target>
</Project>
13
Ben Anderson

以下は、私が彼らのフォーラムに投稿したスレッドに対するマイクロソフトの回答です。基本的に彼らは当時chromeをサポートしていましたが、今ではChrome here )のプラグインがあります。

こんにちはfbanderson、

FirefoxでClickOnceについて話している記事を見つけました。

http://windowsclient.net/wpf/wpf35/wpf-deploying-clickonce-ie-firefox.aspx

.NET Framework 3.5 SP1は、ClickOnce.applicationsを処理する.NETFramework Assistant1.0と呼ばれるコンポーネントを提供します。そのコンポーネントをインストールした場合、FireFoxに表示されるダイアログには、「ClickOnceアプリケーションの実行」ボタンが含まれているはずです。アプリを起動しようとすると、そのボタンが表示されますか?

Google Chromeの場合、経験はありません。これは新しいブラウザであり、テストが不足しています。

よろしくお願いいたします。

キラ銭

フォーラムでのMSDNサブスクライバーサポート

サポートについてフィードバックがある場合は、msdnmg @ Microsoft.comまでご連絡ください。回答が役に立った場合は回答としてマークを付け、役に立たなかった場合はマークを外してください。へようこそ

17
Ben Anderson

私はあなたと共有したいと思う解決策を見つけました。 MageUI またはVisualStudioで実行できます。デプロイがInternetExplorer、Chrome、Firefoxの両方で機能するようになったため、ClickOnceを使用できることを大変うれしく思います。

MageUI

MageUIを使用する場合は、Include the provider URL in the Manifestを確認し、Webサーバーの関連URLを入力する必要があります。

Visual Studio

Microsoft Visual Studioを使用している場合は、 Publish プロジェクトプロパティのタブで、をクリックします。 Updates... ボタンをクリックし、更新場所に公開WebサーバーのURLを入力します。

7
Backouche

Chromeやその他のブラウザは、ダウンロードしたバージョンのmyapp.applicationから(残りのペイロードなしで)clickonceアプリをインストールしようとする場合があります。これにより、Webサイトからインストールを実行する場合、大混乱が発生します(奇妙なエラーメッセージが表示されます)。これが意図したとおりに機能することを確認するには、この回答に記載されていることを実行できます。Mageでスクリプトを使用している場合は、このコマンドのいくつかのバリアント-dim deployCmd:deploymentCmd = chr(34)&mageExePath&chr(34)& "-New Deployment -名前 "&chr(34)&"マイアプリケーション "&chr(34):deploymentCmd = deployCmd&" -ProviderURL [full url] myapp.application -IncludeProviderURL true ".. ..

0
saminpa