安装Microsoft.SqlServer.Types (Spatial) 软件包后,出现构建错误
调查后我发现我的iis工作进程阻止了这些文件。重新启动iis后,应用程序构建成功,但出现错误。
我该如何解决这个问题?
答案 0 :(得分:6)
我找到了一个天生的解决方案。
我只是在编译开始之前停止IIS,然后在编译后再次启动IIS。
在您的项目中,转到“属性”>建立活动:
预构建事件命令行:iisreset / STOP
构建后事件命令行:iisreset / START
答案 1 :(得分:2)
看起来当您卸载NuGet包时,csproj中的引用不会被删除。另外,我在与Git相关的文件中找到了一些名为ms-persist.xml的dll的引用 - 但这可能不是问题所在。因此,删除所有这些后,构建工作。
答案 2 :(得分:0)
我遇到了这个问题,刚刚遇到了一个不错的解决方案。在我的情况下,每当我开始在VS 2013中调试时,我有两个项目正在启动并在IIS Express中运行,即使我在解决方案资源管理器中只选择了一个启动项目。我注意到每次我停止调试时,IIS Express中只有一个应用程序会终止,而另一个应用程序会继续运行。随后的清理/构建将显示您未终止的应用程序遇到的错误。事实证明,你可以在VS中选择多个启动项目,这将告诉IIS Express在开始调试时启动它们(在我的情况下奇怪地已经发生了,即使我只选择了一个启动项目)并且还会告诉IIS在停止调试时表达以终止两个应用程序。当IIS Express中的所有应用程序都终止时,我能够成功清理/构建而不会出现此错误。有关如何设置多个启动项目的说明,请访问:http://msdn.microsoft.com/en-us/library/ms165413.aspx
答案 3 :(得分:0)
你可以回收&作为部署过程的一部分,重新启动锁定上述文件的应用程序池。回收应用程序池解锁文件,您可以覆盖它们。
对于本地部署,您可以指定预构建事件(DefaultAppPool
是应用程序池的名称):
c:\Windows\system32\inetsrv\appcmd.exe recycle apppool "DefaultAppPool"
对于自动部署(例如,从构建服务器),您可以告诉msdeploy
重新启动应用程序池作为部署过程的一部分:
msdeploy.exe -verb:sync -source:recycleApp="Default Web Site/myapp" -dest:auto
有关详细信息,请参阅Web Deploy recycleApp provider documentation。
答案 4 :(得分:0)
所以我遇到了同样的问题,并找到了一个非常简单的修复程序。
首先删除对Microsoft.SqlServer.Types的引用,或卸载nuget包。重新安装软件包并保存。