为什么在构建服务器时,我的ApplicationInsights.config文件未包含在构建包中。我使用Azure DevOps作为构建服务器,我使用标准的Visual Studio构建任务。这是MSBuild参数
/ p:DeployOnBuild = true / p:WebPublishMethod = Package / p:PackageAsSingleFile = true / p:SkipInvalidConfigurations = true / p:PackageLocation =“$(build.artifactstagingdirectory)\”/ p:SkipPostSharp = True / p:AutoParameterizationWebConfigConnectionStrings = False
由于App Publish配置文件不正确,可能会发生这种情况。您的应用程序在VS中的本地发布配置文件应该看起来像这样:
这应该包括:
<File Include="ApplicationInsights.config">
<publishTime>11/06/2018 12:27:58</publishTime>
</File>
卸载项目(右键单击Project Name - > Unload Project)并编辑项目的.csproj文件(右键单击Project Name - > Edit .csproj)
<Content Include="ApplicationInsights.config">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
上面提到的设置将确保ApplicationInsights.config文件作为Publish工件的一部分包含在内,其外观如附图所示。
如果这不是您所看到的,请尝试重新创建新的发布配置文件并进行调整以获得预期的配置。验证这一点后,我尝试使用Azure DevOps中的MSBuild任务发布相同的内容,并且能够将ApplicationInsights.config视为输出构建工件的一部分,并提供您在上述问题中提到的相同参数:
/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:PackageLocation="$(build.artifactstagingdirectory)\\" /p:SkipPostSharp=True /p:AutoParameterizationWebConfigConnectionStrings=False
希望这可以帮助!
最有可能的是,ApplicationInsights.config文件在属性/项目文件中设置为“从不复制”。将此更改为“如果更新则复制”或“始终复制”应该可以解决问题。
此代码库已从其他团队继承。事实证明,他们修改了项目文件以添加新的MSBuild Targets文件。这些附加任务负责确保未将配置文件添加到输出中。