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

Ben*_*son 13 msbuild clickonce

我们正在尝试通过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>
Run Code Online (Sandbox Code Playgroud)

Ben*_*son 17

以下是微软对我在论坛上发布的帖子的回答.基本上他们做支持铬回去以后,但现在有Chrome浏览器插件这里说的伟大工程.

你好fbanderson,

我在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订阅者支持

如果您对我们的支持有任何反馈,请联系msdnmg@microsoft.com如果他们提供帮助,请记得将回复标记为答案,如果他们没有提供任何帮助,请取消标记.欢迎来到


小智 7

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

MageUI

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

视觉工作室

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