【发布时间】:2018-09-07 15:35:34
【问题描述】:
我有一个 C# 项目 X,它引用了一个 C# 项目 Y,它引用了一个 C# 项目 Z。所以依赖链看起来像这样:X => Y => Z。没有直接/显式依赖 X => Z。当我使用 msbuild 命令构建要发布的包时
msbuild DesignService.csproj /m /p:Configuration="Debug" /p:Platform="AnyCPU" /verbosity:quiet /t:Package /p:PackageLocation=X.zip /p:PackageAsSingleFile=True
我得到一个 zip 文件,其中包含 X 和 Y 的 DLL,但没有 Z。然后当包发布(到 Azure 应用服务)时,当调用 Z 中的代码时,我得到运行时错误,说 DLL找不到。如果我在 X 中添加 Z 作为直接/显式引用,它就可以正常工作。但我认为我不应该这样做。
如何在我的发布包中从 msbuild 获取 Z 的 DLL,而不在 X 中添加显式引用?
【问题讨论】:
-
我在本地复制了这个。我使用 Azure API 应用程序作为我的 .csproj。然后我在使用 msbuild 打包时遇到了和你类似的问题。我可以通过转到 Visual Studio > 右键单击项目 > 属性 > 打包/发布 Web > 要部署的项目 > 更改为“此项目中的所有文件”来解决这个问题。
-
@P.Brian.Mackey 谢谢,但我已经将它设置为“此项目文件夹中的所有文件”,范围更广。
-
@P.Brian.Mackey 这似乎是相关的,但我不确定我可以从中获取哪些可操作的项目,尤其是因为它仍然处于打开状态。
-
有一些解决方法可以帮助您解决问题。如果是同一个问题,很高兴知道错误报告已经存在。
标签: c# dll msbuild dependencies azure-web-app-service