我通常通过右键单击应用程序并选择发布选项来部署我的 Web 应用程序。 VS 将所有内容复制到本地文件系统文件夹,然后我将其压缩并复制到 Web 服务器。
出于某种原因,当我发布我的分支时,发布文件夹中的二进制文件与本地构建文件夹中的二进制文件不同。就好像它正在构建不同的代码。
本地构建和发布都使用调试(任何 CPU)配置。
这是反编译程序集的屏幕截图。
第一个是项目 bin 文件夹中的那个,运行完美。
这个来自发布文件夹,如您所见,它包含一些不在另一个构建中的行。
这个特定的类中没有任何 #IF DEBUG
编译指示。
我已经尝试清除 bin 和 obj 文件夹但没有成功。
Visual Studio 是否在某处有用于执行发布构建的所有代码的缓存副本,我可以将其清除?
最佳答案
您确定在发布设置中启用了调试配置吗?发布设置覆盖当前的 Visual Studio 项目配置。
启用调试发布配置后,发布会在
Web.config
上应用Web.Debug.config
转换,而本地构建会忽略Web.Debug .配置
。如我所见,您错过了已发布程序集中的NewJobRegisteredObject
,您可能在Web.Debug.config
中有xdt:Replace
部分删除了对象注册。
关于c# - Visual Studio Publish 提供了不同的二进制文件来构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28213183/