我正在使用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,而不是中断调试?
答案 0 :(得分:9)
是的,有一种内置方法可让Visual Studio用您选择的目标网址替换~remoteAppUrl
符号引用标记。
以下方法不是内置的,但也可能有用。
如果您想在自动构建中使用此功能,则需要为构建参数IsPackaging
(True
)和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>