VS Docker 发布程序集引用问题

问题描述 投票:0回答:1

我有一个添加了 Docker 支持的 C# Visual Studio 控制台应用程序。该应用程序将库引用为程序集(dll 文件)。当应用程序作为控制台应用程序运行时,dll 文件将被复制到相应的 bin 文件夹中。使用 Docker 发布时,构建失败并出现警告:

...警告 MSB3245:无法解析此引用。无法定位 大会...

构建找不到引用的汇编。我正在使用默认的未修改的 docker 文件。

我知道 .dockerignore 文件不包括 bin 文件夹。但是,csproj 文件中明确引用了这些 dll。 我不想修改 .dockerignore,删除 bin 排除,因为这会导致许多其他文件不必要地复制到映像中。

我无法将 dll 引用作为项目包含在我的解决方案中。我没有所有 dll 的源代码,我们有一个由许多团队维护的大型代码库。

我们不使用私有 nuget 包。同样,我们拥有庞大的代码库、多个团队等。

我还将 dll 文件的 Copy Local 设置为 true。

我一定错过了一些简单的东西。直接引用 dll 文件是一个非常常见的用例(如果不是最常见的话),但我似乎找不到一个不涉及自定义构建脚本、手动复制文件等的简单解决方案。常见的做法/这个问题的解决方案?

docker visual-studio build publish assemblies
1个回答
0
投票

仅供参考,我假设这是一个 .NET Core 项目,其中包含使用在容器中构建的 Dockerfile。

如果 .dll 位于 .dockerignore 文件排除的文件夹中,则它们将不可用于 Dockerfile 中运行的构建,从而失败(或至少不会复制它们)。我建议将您的外部引用移至 bin 文件夹外部名为“References”(或类似名称)的文件夹中,并从那里引用它们。

© www.soinside.com 2019 - 2024. All rights reserved.