Octopack packaging windows 服务就像一个网站

Octopack packaging windows service as if it were a web site

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

一切正常,但是,在使用 Octopus Deploy 进行部署时,OctoPack 似乎将此服务视为网站并将其打包不正确。

在添加 razor 模板功能之前,此服务过去常常被正确打包并且能够毫无后顾之忧地部署。

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

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

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

Nuspec 文件看起来像:

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

所以这也行不通。

我该怎么做才能解决这个问题?

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

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

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

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

我仍然有兴趣听听 Octopus 的某个人关于这是 OctoPack 的问题还是与我的设置方式有关。