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

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

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

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

本地构建和发布都使用调试(任何 CPU)配置。

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

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

这个来自发布文件夹,如您所见,它包含一些不在另一个构建中的行。 This is the binary from the publish folder. Totally different

这个特定的类中没有任何 #IF DEBUG 编译指示。

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

Visual Studio 是否在某处有用于执行发布构建的所有代码的缓存副本,我可以将其清除?

最佳答案

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

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

关于c# - Visual Studio Publish 提供了不同的二进制文件来构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28213183/

相关文章:

.net - 将翻译后的 resx 文件放在 Visual Studio 中的不同文件夹中?

c++ - 为什么 MSVC++11 拒绝函数的 constexpr 限定?

c# - 简单文本的正则表达式模式

c# - 为什么此 F# 代码比等效的 C# 代码慢?

c# - 解析 "a=1,b=2,c=3,4,5,d=6,e=x,y,z"的正则表达式

c# - 测试对象以查看它是否实现接口(interface)有什么问题?

c++ - OpenCV 找不到图像

java - Java 项目的结构如何(与 Visual Studio C# 项目相比)?

c# - 当 DLL 位于不同目录时如何添加项目引用

azure - 设置 Azure ACS 角色