【问题标题】:Specify value for ~remoteAppUrl in an Office add-in manifest在 Office 加载项清单中指定 ~remoteAppUrl 的值
【发布时间】:2016-07-20 21:26:34
【问题描述】:

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

文档中提到了 Visual Studio 在调试过程中填写此值:

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

是否有一种内置方法可以让 Visual Studio 在适当的时间(提交 Office 应用商店之前/期间)填写生产 URL,并且不会中断调试?

【问题讨论】:

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


    【解决方案1】:

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

    1. 在 Visual Studio 中,访问加载项的“发布...”选项 项目,然后点击“打包加载项”按钮
    2. 然后您可以在弹出的模式对话框中输入 URL
    3. 然后触发构建,将 URL 注入生成的 Manifest XML 文件中
    4. Windows 资源管理器窗口将方便地打开以显示 生成的文件。

    以下方法不是内置的,但也可能有用。

    如果您希望在自动构建中这样做,您需要为构建参数 IsPackaging (True) 和 RemoteAppUrl 指定值。

    如果您希望在标准 Visual Studio 构建中这样做,鉴于 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>
    ...
    

    【讨论】:

    • 没有Visual Studio也能实现类似的效果吗?
    • @IanVS 实际上部分问题是打包工作在 Visual Studio“外部”,但 不是来自 Visual Studio。因此,在非基于 Visual Studio 的构建过程中,“[...]您需要为构建参数 IsPackaging (True) 和 RemoteAppUrl 指定值。
    • @DeChrist 没有做这些事情:&lt;PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "&gt;&lt;RemoteAppUrl&gt;http://localhost:3000/&lt;/RemoteAppUrl&gt;&lt;/PropertyGroup&gt;
    • @5ervant 很难在没有更多上下文的情况下添加有用的回复。我建议创建一个新问题,在其中完整描述您所看到的上下文和实际错误。
    【解决方案2】:

    编辑:

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

    为后人原创

    ~remoteAppUrl 是您的文件所在位置的占位符。例如,如果您已将加载项上传到 Azure Web 应用程序,您的远程应用程序 url 将类似于 myWebApp.azurewebsites.net

    【讨论】:

    • 我想我的问题具有误导性。我对其进行了编辑以使其更清晰。如果您有答案,请告诉我。
    【解决方案3】:

    我想说明值的来源以替换 ~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:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多