使用Docker使用自定义的Visual Studio Run配置



我正在与Docker在Visual Studio 2017中建立.NET Core Project。作品。

但是,除了 debug 版本。。。

我已经创建了解决方案和项目配置,名为 predroduction 并选择了它,并创建了 docker-compose.vs.preproduction.yml file。

但是,当我运行预生产配置时,项目运行时,就会选择 Release 。构建输出控制台还显示以下内容:

调试

*docker-compose -f "docker-compose.yml" -f "docker-compose.override.yml" -f "docker-compose.vs.debug.yml" -p dockercompose3979710767*

版本

*docker-compose -f "docker-compose.yml" -f "docker-compose.override.yml" -f "docker-compose.vs.release.yml" -p dockercompose3979710767*

预生产

*docker-compose -f "docker-compose.yml" -f "docker-compose.override.yml" -f "docker-compose.vs.release.yml" -p dockercompose3979710767*

注意第二个YML文件。它以某种方式使用了发行文件,而不是我添加的自定义配置文件。

有人知道如何解决这个问题,因此Docker将使用我的自定义配置?

不幸的是,这是不可能的。花了很多时间来弄清楚这一点,事实证明,这两个文件名被硬编码为DLL。不是"调试"的所有内容都将使用"发行"文件。

通过从不同文件夹引用其他docker-compose.yml文件可能是一个解决方案,但是由于它不是标准项目,而是docker项目,因此您无需访问邮政构建事件即可复制所需的必需事件那里的文件。此外,您不能拥有多个Dockerfile,因为它也基于名称约定。

您可以使用一个版本来开发和测试,并在随附的文件中定义并创建一个脚本,该脚本根据您现有的撰写文件和额外的内容手动构建所有内容。

我为此问题提供了一些非标准解决方案。开始了:1(获取DNSPY工具(https://github.com/0xd4d/dnspy/releases(

2(安装

3(查找文件microsoft.docker.dll(对我来说,它在" c: program Files(x86( Microsoft Visual Studio 2017 enterprise MSBUILD SDKS SDKS MICROSOFT.DOCKER.SDK wools.sdk tools.sdk swort" way。(

4(获取此文件的副本(例如,在某些目录中复制(。

5(在dnspy.exe

中打开此dll

6(go microsoft.docker(版本编号( -> microsoft.docker.dll-> dockercomposclient类 -> mergeddockercosposeposeposecumentProvider private Classe classe class-> getDocuments私有方法

7(在这种方法中,您可以看到用于构建的所有文件路径和文件

8(在必要的字符串 ->编辑IL指令

上右键单击

9(编辑您的需求(至于我,我能够将docker-compose.override.yml更改为docker-compose.development.yml(

10(保存更改

11(文件 ->保存模块并保存升级的dll。

哇!!!实际上您必须重新启动VS甚至Docker。此后,您的更改将适用于管道构建。享受

最新更新