MSBuild ClickOnce错误:“部署和应用程序没有匹配的安全区域”

问题描述 投票:13回答:3

我们正试图通过MSBuild发布ClickOnce应用程序。我们已经使它适用于已安装的Windows应用程序版本。

但是,当我们将install设置为false,以便它只是从Web运行应用程序时,当我们尝试从URL运行应用程序时,我们收到以下错误:“部署和应用程序没有匹配的安全区域”这样工作正常在Internet Explorer中。我们只在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>
msbuild clickonce
3个回答
17
投票

以下是微软对我在论坛上发布的帖子的回答。基本上他们当时支持chrome,但现在有一个适用于Chrome here的插件效果很好。

嗨包子

我在Firefox中发现了一篇关于ClickOnce的文章。

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

.NET Framework 3.5 SP1提供了一个名为.NET Framework Assistant 1.0的组件,用于处理ClickOnce .applications。如果您已安装该组件,则FireFox中显示的对话框应包含“运行ClickOnce应用程序”按钮。当您尝试启动应用时,您是否看到了该按钮?

对于谷歌浏览器,我们没有相关经验。这是一个新的浏览器,我们缺乏测试。

此致

钱倩

论坛中的MSDN订阅者支持

如果您对我们的支持有任何反馈,请联系[email protected]如果他们提供帮助,请记得将回复标记为答案,如果他们没有提供任何帮助,请取消标记。欢迎来到


7
投票

我找到了一个解决方案,我很乐意与您分享。您可以使用MageUI或Visual Studio执行此操作。我非常高兴使用ClickOnce,因为我的部署现在适用于Internet Explorer,Chrome和Firefox。

MageUI

如果使用MageUI,则必须检查Include the provider URL in the Manifest并键入Web服务器的关联URL。

Visual Studio

如果使用Microsoft Visual Studio,则在项目属性的“发布”选项卡上单击“更新...”按钮,然后在更新位置中键入发布Web服务器的URL。


0
投票

Chrome和其他浏览器可能会尝试从myapp.application的下载版本安装clickonce应用程序(没有剩余的有效负载)。如果您希望从网站进行安装,则会导致严重破坏(带有奇怪的错误消息)。为了确保按预期工作,您可以执行本答案中提到的内容,或者,如果使用Mage编写脚本,则可以使用此命令的一些变体 - dim deploymentCmd:deploymentCmd = chr(34)&mageExePath&chr(34)&“ - 新部署-Name“&chr(34)&”My Application“&chr(34):deploymentCmd = deploymentCmd&”-ProviderURL [full url] myapp.application -IncludeProviderURL true“...

© www.soinside.com 2019 - 2024. All rights reserved.