部署地狱,Microsoft.Web.Infrastructure.dll

时间:2013-08-19 08:01:28

标签: asp.net asp.net-mvc

我们必须在几个(可能的10个)服务器上部署我们的Web项目,我们开发了Nant脚本来完成Job,但是我们遇到了问题,那就是Microsoft.Web.Infrastructure.dll是其中之一依赖关系没有部署我们所做的任何事情。

有没有人可以解释一下如何添加对这个dll的引用,并将其标记为本地复制?我将尝试解释什么是hapening,当我将这个dll的引用添加到我们的proj时,引用添加到web.config中:

<assemblies>
    <add assembly .... blah blah />
</assemblies>

这意味着汇编应该在GAC中,对吧?如果我点击visual studio中的Property Pages并转到参考选项卡,我可以看到这个Dll在Gac中。

好的,以下命令

gacutil.exe -l Microsoft.Web.Infrastructure returns with no Result !

那么这个组件存放在哪里?如何通过Microsoft ???

完成魔术

如何从GAC中删除它?

任何人?

PS。我在网上找到的一种可能的解决方案。是运行程序包管理器并从那里再次安装...但对我来说这不是一个选项,出于安全原因我们没有连接到互联网。

2 个答案:

答案 0 :(得分:0)

如果您针对MVC进行了开发,假设它已安装在GAC中,为什么不通过http://www.asp.net/mvc/mvc3

将其安装在目标服务器上

如果您有一个proj文件可以使用,那么复制本地解决方案很棒,但是当您选择了一个全部是sln和web.config的网站项目时,您没有这样做。

您可以通过网站属性页面添加引用(来自您的nuget包) 你听起来已经有了nuget包,但如果没有,你只需右键单击bin文件夹并管理包 - Microsoft.Web.Infrastructure - 安装 如果将此包引用添加到bin文件夹,您将看到一个新文件: BIN \ Microsoft.Web.Infrastructure.dll.refresh

这只包含指向包中实际dll的链接 - ..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll

在构建时,dll将被复制到bin文件夹。

答案 1 :(得分:0)

我建议您使用webmatrix / web平台安装程序在每台服务器上安装DLL。