在Office加载项清单中指定~remoteAppUrl的值

时间:2016-07-20 21:26:34

标签: outlook ms-office outlook-web-addins

我正在使用new framework为Outlook编写加载项。项目模板中的清单使用~remoteAppUrl来表示Web文件的位置。它在开发过程中运行良好,但要发布到Office Store,我需要在那里生成URL。如果我将生产URL保存到清单,则在调试期间会使用生产服务器,因此不会显示本地更改。

文档提到Visual Studio在调试期间填写此值:

  

接下来,Visual Studio执行以下操作:
  1.通过将~remoteAppUrl标记替换为起始页的完全限定地址(例如,http://localhost/MyAgave.html)来修改XML清单文件的SourceLocation元素。

是否有内置方法让Visual Studio在适当的时间(Office Store提交之前/期间)填写生产URL,而不是中断调试?

3 个答案:

答案 0 :(得分:9)

是的,有一种内置方法可让Visual Studio用您选择的目标网址替换~remoteAppUrl符号引用标记。

  1. 从Visual Studio中,访问加载项的“发布...”选项 项目,然后单击“打包加载项”按钮
  2. 然后,您可以在弹出的模式对话框中输入网址
  3. 然后触发构建,该构建将在生成的Manifest XML文件中注入URL
  4. Windows资源管理器窗口将方便地打开以显示 制作文件。
  5. 以下方法不是内置的,但也可能有用。

    如果您想在自动构建中使用此功能,则需要为构建参数IsPackagingTrue)和RemoteAppUrl指定值。

    如果您希望在标准的Visual Studio Build中使用它,假设Visual Studio没有提供指定构建参数的简单方法(请参阅How to emulate /p msbuild parameter in Visual Studio build?),则需要编辑项目文件以设置相同的构建参数。 例如:

    ...
      <PropertyGroup>
        <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
        ...
        <IsPackaging>True</IsPackaging>
      </PropertyGroup>
      <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
        ...
        <RemoteAppUrl>https://localhost:44300</RemoteAppUrl>
      </PropertyGroup>
      ...  
      <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
        ...
        <RemoteAppUrl>https://your.own.url</RemoteAppUrl>
      </PropertyGroup>
    ...
    

答案 1 :(得分:4)

编辑:

Visual Studio不会填写生产URL,但您可以复制当前清单并手动将~remoteAppUrl替换为适当的主机,从而为您提供加载项的生产和调试版本。

原作为后代

~remoteAppUrl是占位符,用于托管文件的位置。例如,如果您已将加载项上载到Azure Web App,则远程应用程序URL将与myWebApp.azurewebsites.net

一致。

答案 2 :(得分:0)

我想说明值的来源,以替换~remoteAppUrl参数。加载项.csproj文件包含对WebApp项目的引用:

<ItemGroup>                                                                     
  <ProjectReference Include="..\OutlookWebAddIn1Web\OutlookWebAddIn1Web.csproj">
    <Project>{57AC33A8-A364-4084-B41F-319C5DBB9FB4}</Project>                   
    <Name>OutlookWebAddIn1Web</Name>                                            
    <Private>True</Private>                                                     
    <RoleType>Web</RoleType>                                                    
    <OutputItemType>SharePointWebProjectOutput</OutputItemType>                 
    <RoleName>OutlookWebAddIn1Web</RoleName>                                    
    <ReferenceOutputAssembly>False</ReferenceOutputAssembly>                    
  </ProjectReference>                                                           
</ItemGroup>    

我认为它从WebApp .csproj文件获取URL: enter image description here