【问题标题】:Octopack packaging windows service as if it were a web siteOctopack 打包windows服务就好像它是一个网站一样
【发布时间】:2015-05-02 18:01:02
【问题描述】:

我有一个 Windows 服务,其中包含允许它呈现剃须刀模板的必要组件。此服务侦听消息队列并发送电子邮件,使用 razor 模板生成丰富的 html。

一切正常,但是,在使用 Octopus Deploy 部署它时,OctoPack 似乎将此服务视为一个网站并错误地打包它。

在添加剃须刀模板功能之前,该服务已经正确打包,可以无忧部署。

打包后的输出现在看起来像:

实际上,它只需要包含bin 文件夹的内容。在我看来,OctoPack 现在似乎将服务视为网站。

我曾尝试添加一个 nuspec 文件,但这不起作用,我最终得到:

Nuspec 文件如下所示:

<!-- cut for brevity -->
<files>
  <file src="bin\**\*.*" target=""/>
</files>

所以这也行不通。

我能做些什么来解决这个问题??

【问题讨论】:

    标签: deployment octopus-deploy nuspec octopack


    【解决方案1】:

    我设法拼凑出一些东西来解决我遇到的问题。查看Octopus Deploy docs 后,我发现我可以将OctoPackNuGetProperties 属性传递给msbuild 并替换nuspec 文件中的配置名称。

    所以 nuspec 文件现在看起来像这样:

    <files>
      <file src="bin\$config$\**\*.*" target="" />
    </files>
    

    我现在将/p:OctoPackNuGetProperties=config=Deploy 传递给msbuild,这意味着OctoPack 现在可以正确打包服务bin。

    我仍然很想听 Octopus 的某个人说这是否是 OctoPack 的问题,或者是否与我的设置方式有关。

    【讨论】:

    • 您可以在 Github 上查看 OctoPack 的源代码:github.com/OctopusDeploy/OctoPack/tree/master/source 也就是说,这可能是故意的,因为 OctoPack 只是 NuGet.exe 的一个包装器。您发现的附加 MSBuild 参数是一种自定义包以及修改 NuSpec 的方法。由于 Octopus 服务器与您的构建过程没有集成,因此您创建包的方式在 Octopus 服务器之外。只有通过对 NuSpec 和 MSBuild 进行自定义,您才能使用 NuGet 和 Octopus 部署任何东西
    • 这不是 OctoPack 的问题。如果你有一个 web.config 文件,OctoPack 假设你有一个 web 项目。正如 osij2is 指出的那样,您可以查看源代码。具体来说,查看this file 并查看IsWebApplication() 函数。
    猜你喜欢
    • 1970-01-01
    • 2019-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-27
    • 1970-01-01
    • 1970-01-01
    • 2021-06-27
    相关资源
    最近更新 更多