Visual Studio Publish提供了不同的二进制文件来构建

时间:2015-01-29 11:08:30

标签: c# visual-studio visual-studio-2012

我通常通过右键单击应用程序并选择发布选项来部署我的Web应用程序。 VS将所有内容复制到本地文件系统文件夹,然后将其压缩并将其复制到Web服务器。

出于某种原因,当我发布我的分支时,发布文件夹中的二进制文件与本地构建文件夹中的二进制文件不同。它好像在构建不同的代码。

本地构建和发布都使用Debug(Any CPU)配置。

这是反编译程序集的屏幕截图。

第一个是项目bin文件夹中的一个并且运行完美。 This is the built binary from the bin folder

这个来自发布文件夹,你可以看到它包含一些不在另一个版本中的行。 This is the binary from the publish folder. Totally different

此特定课程中没有任何#IF DEBUG个pragma。

我已经尝试清除bin和obj文件夹但没有成功。

Visual Studio是否有一个缓存的所有代码的副本,用于执行我可以清除的发布版本?

1 个答案:

答案 0 :(得分:0)

  1. 您确定在发布设置中启用了调试配置吗?发布设置会覆盖当前的Visual Studio项目配置。 enter image description here

  2. 启用调试发布配置后,发布会在Web.Debug.config上应用Web.config转换,而本地构建会忽略Web.Debug.config。如我所见,您错过了已发布的程序集中的NewJobRegisteredObjectxdt:Replace部分中的Web.Debug.config部分可能会删除对象注册。