【发布时间】:2011-09-02 10:57:26
【问题描述】:
我正在使用存储库模式和 Unity 来管理对我的具体存储库对象的依赖关系。这本身不是问题,但是在 VS 和 TFS 构建过程中使用发布网站时我遇到了问题。
我认为问题是由以下事实引起的:尽管在我的应用程序中引用了包含具体存储库对象的项目,但它包含的类从未直接使用过。这是因为我使用 Unity 在运行时使用我的 web.config 中保存的 Unity 配置创建具体对象的实例。
存储库项目在构建时正在编译并包含在输出中,但是当在 TFS 的任一 VS 中使用发布网站时,缺少存储库程序集。因此,当 Web 应用程序部署到 Web 服务器时,无法使用它,因为您会遇到错误:
给定的程序集名称或代码库无效。 (HRESULT 异常:0x80131047)
这是因为 Unity 无法像您预期的那样找到丢失的程序集。
所以我的具体问题是;有没有办法确保在 VS 和 TFS 中发布网站时直接将存储库程序集复制到输出,而不直接使用项目中的具体类之一?
【问题讨论】:
-
您是否尝试在 TFS 中编辑构建过程?
-
@onof 具体是哪一部分?该项目正在编译,并且组件在构建输出中,它只是没有作为发布的一部分被复制。
-
哦,我明白了。问题出在 Visual Studio 发布工具中。我猜你需要另一个工具来发布网站
-
@onof 可能就是这种情况。或者我可以创建一个自定义构建过程,在发布后复制缺少的程序集。我只是想知道我是否可以做一些事情来确保它被包含在标准中。
-
我放弃了使用 Publish Website,因为它对 msbuild 或构建机器等不是特别有用,并转而使用 Web 部署项目,它更有用并且似乎复制我的 Unity 程序集没有问题。
标签: asp.net unity-container publish