部署包不再在项目中安装dll

时间:2014-08-21 15:45:38

标签: visual-studio-2010 dll web-deployment

我将Visual Studio 2010用于两个应用程序,在另一台服务器上安装到IIS 7.5。项目A是Web表单Web应用程序,而项目B是MVC 4 Web应用程序。在尝试在两个应用程序之间设置StateServer时,我在其他参考列表中添加了对每个.dll的引用。 StateServer被放弃使用cookie,并且项目.dll被删除了(直到安装过程我才注意到项目B的引用可能也在列表中.VS似乎已从参考文献中删除了它们当项目B.dll被删除时,因为我没有手动删除这些引用。)

问题是,部署包仍然包含它们。 (我现在只是对项目A进行故障排除。)它们不再列在项目的参考文献列表中,它们不会出现在obj / Release / Package文件夹下的文件夹内容中,但它们不会出现在使用Deploy后,DO出现在安装位置 - >在IIS中导入应用程序!这包括Project B.dll,以及它的许多引用,例如DotNetOpenAuth.OAuth.dll。

我已经在项目A上搜索了我的整个解决方案,并且没有引用项目B.dll。我已尝试在IIS中设置一个全新的网站,并进行部署。我尝试在Staging(QA)和Release配置下进行部署,以确保其中只有一个被搞砸了。在打包/发布Web下,您可能感兴趣的设置是"只有运行此应用程序所需的文件"和"创建部署包作为zip文件"。
运行该站点会出现错误,"无法加载文件或程序集&System; Web.WebPages.Razor,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其中一个依赖"。此dll不在项目的References列表中,也不在Deployment Package文件夹中,也不在安装位置的bin文件夹中。它在本地运行时没有错误 如果我只是从安装的位置手动删除额外的.dll,我在运行站点时遇到编译错误,抱怨未声明变量:var lotid =<%= defaultLotID%&gt ;;但是,在后面的代码中声明了这个变量:Public Shared defaultLotID As Integer = 0.就像我说的那样,它在本地运行良好。所以这似乎是一个虚假的错误;也许是矿井里的一只金丝雀。

说真的,我错过了什么?我不知道在引用另一种类型的Web应用程序之后我会有多好。感谢任何接受故障排除的人!我进去了两天,同事们感到很困惑。

1 个答案:

答案 0 :(得分:0)

我最终取消了所有更改,将我的代码放回TFS最后一次检入版本。我重新引入了cookie代码,构建和部署,我不再在安装位置看到其他项目的dll。我想通过参考和随后的退出向前推进是行不通的。不得不回滚到之前的TFS版本,并重新开始。