语境
在 VS2012 中,我有 1 个 sln 文件,其中有几个项目。有些只是代码库,有些是 Web 应用程序。然后我们还有 1 个网站项目...
这个网站项目最近更新到 .NET 4.0,这也意味着我们需要更新构建服务器使用的 wdproj。我试过这个,但可惜的是,构建一直失败。
我决定摆脱 wdproj 并使用更新的发布配置文件。这在 VS2012 中很容易生成。
在构建服务器上,我使用了以下命令:
<MSBuild Projects="<path to publishproj file>" Properties="DeployOnBuild=true;
PublishProfile=name-of-profile; VisualStudioVersion=11.0" />
在 PublishProfile 中,WebPublishMethod 是 FileSystem,因此只需将所有内容复制到文件夹中。
问题
该网站项目包含 6 个由 msbuild 构建的 ProjectReference。生成的文件夹包含这些项目的 dll,但缺少这些项目的所有引用 dll,也不会复制附属程序集(子文件夹中的编译资源文件)。
所以我错过了几个dll!
有谁知道这个的解决方案?
已找到信息
我可以找到几篇描述相同行为的帖子,但它们要么没有解决方案,要么没有最佳修复。
示例:MSBuild 不会从依赖项目中复制 dll 引用
类似的问题:MSBuild Package via Command line not included my all my Assemblies
我还开始研究 Microsoft.WebSite.Publishing.targets 中使用的特定复制代码的 msbuild 过程。在目标“AfterResolveReferences”中,复制了引用项目的 dll,但不复制依赖的 dll。
非常感谢所有帮助!