12

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

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

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

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

4

3 回答 3

16

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

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

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

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

如果您希望在标准 Visual Studio 构建中这样做,鉴于 Visual Studio 不提供指定构建参数的简单方法(请参阅如何在 Visual Studio 构建中模拟 /p msbuild 参数?),您将需要编辑项目文件以设置相同构建参数的值。例如像这样:

...
  <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>
...
于 2016-08-29T13:36:55.250 回答
4

编辑:

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

为后人原创

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

于 2016-07-20T22:01:46.383 回答
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: 在此处输入图像描述

于 2018-10-03T13:44:09.847 回答