使用Installshield LE将标记为“复制到输出目录”的包含文件包括在内

36
我正在使用 Visual Studio 2012 用VB.NET构建一个Windows服务。 我在项目中添加了 log4net 以处理有关服务执行的日志信息。 我创建了一个 log4net.config 文件,并在其 Copy to Output Directory 属性中标记为 Copy if newer
我向解决方案添加了一个 Installshield LE 安装程序项目,并选择包含文件中的Myproject.Primary Output。 我希望我的log4net.config 文件能够被包含在安装程序中,因为它被标记为输出时复制,但实际安装后未包含该文件。 经过研究,我发现可以将 log4net.config 的 Build Action 更改为 Content,并在 Setup 项目中再次包括Myproject.Content Files。结果发现这样做可以正常工作。
然而,阅读SO上的此答案后,我注意到 Build Action->Content 用于获取文件流,这不是我想要实现的。
请问是否有其他方式,建议的方式来将我的log4net.config文件从生成目录中包含到我的Installshield安装程序项目中?

4
据我所知,你找到的方法是正确的,即使你没有实际使用"流(stream)"。否则,你需要手动通过"2 - 指定应用程序数据/文件"将文件添加到安装项目中。 - Jerther
1个回答

1
我可以将loggly相关的配置添加到App.config文件中,就像下面这样。 我正在使用它来托管WCF服务在Window Service中,对我来说运行良好。
   <configSections>
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>

      <log4net>
        <root>
          <level value="ALL" />
          <appender-ref ref="LogglyAppender" />
        </root>
        <appender name="LogglyAppender" type="log4net.loggly.LogglyAppender, log4net-loggly">
          <rootUrl value="https://logs-01.loggly.com/" />
          <inputKey value="abcdefgh" />
          <tag value="log4net" />
        </appender>
      </log4net>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接