这个问题可能更多是关于我不懂术语而不是什么。作为参考,我来自“使用PHP / wordpress构建网站,然后将文件拖放到FTP-繁荣的网站作品”的背景
我已经构建了一个.NET应用程序,该应用程序在Visual Studio中本地运行。那里一切都很好。如果重要的话,它是使用Sitefinity nuget包构建的。
我启动了一个远程Windows服务器,并通过IIS管理器和我发现的教程配置了IIS。我将应用程序文件(通过Git)移动到了该服务器,然后将其指向了我的文件。我现在可以转到localhost/SitefinityTest
并查看该站点。
除了页面以外,我都会收到错误消息。我不认为这些是应用程序的错误(再次,它在VS中可以很好地在本地工作),但是我如何部署它却有问题。
Could not load file or assembly 'Telerik.Sitefinity' or one of its dependencies. The system cannot find the file specified.
我的第一个想法是缺少某些东西。乍一看,packages目录根本不存在,因此我将其从本地复制粘贴到服务器中。不用找了。
- C:\SitefinityTest
- SitefinityTest (this is where my server is pointing)
- ... all my files
- packages (this is the missing directory I manually copied over)
.gitattributes
.gitignore
SitefinityTest.sln
我还认为有一些“构建”步骤,类似于在应用程序在此服务器上运行之前需要在VS中点击“运行”?
再次,这不是我的强项。我主要是一名前端开发人员,我了解MVC和代码,并且可以实际构建应用程序,但是我对幕后情况没有任何基本了解。如果我做出了一些明显的错误假设,请告诉我。
答案 0 :(得分:2)
我认为您可能想尝试使用Visual Studio内置的“发布”功能。您应该能够将其指向您的服务器。我不记得这个过程涉及的所有内容,但是过去对我来说是有用的。
本文可能会有所帮助。
https://docs.microsoft.com/en-us/dotnet/core/tutorials/publishing-with-visual-studio
答案 1 :(得分:1)
通常,DLL文件不会提交给Git-仅提交源代码。
这就是为什么在您的服务器上,很有可能Bin文件夹为空,因此丢失了dll错误。
您是对的-您在这里缺少“构建”步骤。
如果服务器上有Visual Studio,则可以使用它来构建应用程序,这将根据源代码在bin文件夹中生成dll。
如果没有,则可以将整个bin文件夹从本地主机手动复制到服务器。
另一方面,我们不再使用虚拟机-我们使用Azure App Service。我们将其绑定到github存储库,然后将更改推送到存储库-Azure从github获取最新信息,构建解决方案并部署站点。
我非常喜欢这种自动构建选项。
对于您而言,您将必须手动执行该步骤-在服务器上构建或仅自己复制dll文件。