我正在尝试远程调试我的asp.net上的asp.net mvc网站。我以调试模式发布了我的项目,然后查看我的远程网站文件夹,它只显示1个csharp文件而不是所有文件。我不知道为什么我看不到他们所有人。
答案 0 :(得分:4)
实际上,发布任何.cs
个文件很有意思。假设您直接从Visual Studio发布到Azure,MVC应用程序首先被编译然后部署,并且编译器的输出中不应该有任何.cs
文件。
来自msdn:
编译器生成可执行(.exe)文件,动态链接库 (.dll)或代码模块(.netmodule)。
在调试模式下发布并不会改变这一点。来自msdn:
/ debug选项使编译器生成调试 信息并将其放在输出文件中。
通过比较,所有的"静态"项目中的文件(视图,样式表,脚本等)部署在与项目相同的目录结构中。但是所有C#文件(控制器,模型类,自定义属性等)都被编译到可执行文件中,如上所述,然后将其放在bin
文件夹中。
作为实验,请尝试将您的网站发布到本地计算机并检查目标文件夹。假设您的解决方案只包含一个项目(假设它被称为GiantCorp.AwesomeApp.Web),它的结构可能与此类似:
bin/ GiantCorp.AwesomeApp.Web.dll // <= all your C# classes compiled to a single executable GiantCorp.AwesomeApp.Web.pdb // <= if you compile/publish in Debug mode System.dll System.Web.Mvc.dll ....etc for any required library or .NET assembly dependencies Content/ bootstrap.css Site.css Scripts/ jquery.min.js giantcorp.app.js ....etc Views/ Home/ Index.cshtml About.cshtml AwesomeFeature/ Index.cshtml Shared/ _Layout.cshtml _ViewStart.cshtml Web.config Global.asax Web.config