从调试切换到发布时,Visual Studio C# 项目会强制重建,反之亦然

2024-01-17

每次从调试切换到发布时,Visual Studio 2012 C# 项目似乎都会强制重建,反之亦然,即使项目中没有任何更改。对于独立项目来说,这种情况不会发生——但是,如果您将单个项目引用添加到类库,那么每次更改为不同的构建配置时,它就会开始表现出这种行为。我已经追踪到了force.build文件(在obj\Debug or obj\Release) 每当配置选择发生变化时。为什么是这样?可以禁用吗?我认为切换配置本身不应该需要重建。我在任何文档中都找不到任何提及“force.build”文件和/或如何禁用此“功能”的内容。

要重现该问题:

  1. Click File/New Project...
  2. 创建一个新的Visual C# -> Console Application。保留生成的代码不变。
  3. 右键单击解决方案资源管理器中的新解决方案,然后选择Add -> New Project...
  4. Choose Visual C# -> Class Library。保留生成的代码不变。
  5. 右键单击ConsoleApplication1在解决方案资源管理器中并选择Add Reference...
  6. 选中旁边的框ClassLibrary1 in Solution -> Projects并击中OK.
  7. 构建项目于Debug配置。它按照预期构建。
  8. 切换到Release配置并再次构建。它按照预期构建。
  9. 切换回Debug并再次构建。它builds,而且不应该。已经建好了,对吧?我们所做的只是更改目标配置选择。

这是一个错误吗?有解决方法吗?


我承认我从来没有太关注它,但我只是出于好奇而尝试(Visual Studio 2012 Update 4)。

对于像您描述的单个项目,我尝试切换配置,显然,当我更改配置时,主项目再次构建:

========== Build: 1 succeeded, 0 failed, 1 up-to-date, 0 skipped ==========

但是,如果我查看输出文件夹,没有文件被更新(每个文件的更改时间与之前的版本相同),除了 vshost.exe(我禁用了它,但收到了相同的消息)。然后,我尝试将构建日志设置为更详细(工具 - 选项项目和解决方案 - 构建和运行 - MSBuild 项目构建输出详细程度 - 从“最小”更改为“正常”或“详细”):

然后我得到以下输出:

1>------ Build started: Project: ConsoleApplication1, Configuration: Release Any CPU ------
1>Build started 06/10/2015 00:26:50.
1>GenerateTargetFrameworkMonikerAttribute:
1>Skipping target "GenerateTargetFrameworkMonikerAttribute" because all output files are up-to-date with respect to the input files.
1>CoreCompile:
1>Skipping target "CoreCompile" because all output files are up-to-date with respect to the input files.
1>_CopyAppConfigFile:
1>Skipping target "_CopyAppConfigFile" because all output files are up-to-date with respect to the input files.
1>CopyFilesToOutputDirectory:
1>  ConsoleApplication1 -> c:\users\user\documents\visual studio 2012\Projects\ConsoleApplication1\ConsoleApplication1\bin\Release\ConsoleApplication1.exe
1>
1>Build succeeded.
1>
1>Time Elapsed 00:00:00.09
========== Build: 1 succeeded, 0 failed, 1 up-to-date, 0 skipped ==========

所以看来该项目并没有每次都真正得到重建。如果您发现所有内容都被重建(检查输出目录文件的更改时间),那么尝试按照我的描述增加构建日志的详细程度,看看发生了什么。希望能帮助到你。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从调试切换到发布时,Visual Studio C# 项目会强制重建,反之亦然 的相关文章

  • dup2() 和 exec()

    include
  • 如何将不记名令牌发送到 ASP NET MVC 5 中的视图?

    我有一个 NET MVC and WEB API项目 我想打电话给WEB API controllers来自 javascript 但我没有找到将令牌发送到我的视图的方法 我想添加bearer token in Viewbag变量 使用以下
  • binary_log_types.h:没有这样的文件或目录

    我正在编译一个小型 mysql C 项目并且 遇到以下错误 C Program Files x86 MySQL MySQL Server 5 7 include mysql com h 22 30 fatal error binary lo
  • 在 C# 中轻松创建支持索引的属性

    在 C 中我发现索引属性 http msdn microsoft com en us library aa288464 VS 71 aspx非常有用 例如 var myObj new MyClass myObj 42 hello Conso
  • 将 void *user_data 转换为对象

    我该如何投射void something到标准 C 中的对象 具体来说我想投void userdata to std map
  • 比较 LINQ to SQL 中的两个日期

    我有一个数据库 其中有一个名为会议的表 会议日期使用以下格式存储在此表中 May 2nd 2011 例如 格式为5 2 2011 我的要求是获取两个日期 例如 2011 年 4 月 25 日和 2011 年 5 月 2 日 之间的会议 并编
  • 修剪 UIImage 边框

    这是我想要修剪的图像的示例 我想去掉图像周围的边框 在本例中是顶部和底部的黑条 我在Github上找到了一个库 CKImageAdditions https github com cmkilger CKImageAdditions 但是它似
  • 多维数组和指向指针的指针

    创建多维数组时char a 10 10 根据我的书 它说你必须使用类似于char a 10 将数组传递给函数 为什么必须这样指定长度 您不是只是将双指针传递给 with 并且该双指针不是已经指向分配的内存吗 那么为什么参数不能是char a
  • 以编程方式运行 T4 文本模板

    有没有一种方法可以通过代码以编程方式运行 T4 文本模板 我正在制作一种自定义域特定语言 我希望相关的文本模板在用户每次保存时运行 目前 这就是我在 DSL 模型中所做的事情 protected override void OnDocume
  • 如何在Azure功能中添加razor视图文件?

    我正在创建一个应用程序 它是 azure 函数项目 我想在该项目中使用 Razor 视图 我应该在 azure 函数中使用任何模板引擎吗 得益于一些方面的进步剃刀之光项目 https github com toddams RazorLigh
  • 为什么 httpRuntime targetFramework="4.5" 禁止抓取 .ASPXAUTH cookie?

    当我的 web config 具有以下 httpRuntime 时 我的控制器无法获取 cookie ASPXAUTH 它似乎能够获取任何其他 cookie 无论带或不带句点前缀 如果我删除下面的行 它就可以正常工作
  • 为什么我无法调试动态加载的程序集?

    我正在开发一个 Web API 项目 该项目使用内部模拟框架 允许拦截和修改来自控制器的响应 它使用 MEF 加载包含某些先决条件匹配时执行的代码的程序集 我知道这是正常工作的 因为我可以在响应中看到模拟已被执行 但由于某种原因我无法调试动
  • C++:LPWSTR 在 cout 中打印为地址

    我有一个类型变量LPTSTR 我打印到std cout with lt lt 在 ANSI 系统中 不知道它是在哪里确定的 它工作得很好 它打印了字符串 现在 在 Unicode 系统中 我得到的是十六进制地址而不是字符串 那么 为什么LP
  • 我可以对(非成员)函数使用部分模板特化吗?

    我试图在 非成员 函数上使用部分模板专业化 但我在语法上遇到了问题 我在 StackOverflow 中搜索了其他部分模板专业化问题 但这些问题涉及类或成员函数模板的部分专业化 作为起点 我有 struct RGBA RGBA uint8
  • 如何在 Visual Studio 2010 Express 中引用 system.drawing?

    我对此有点陌生 我的印象是要绘制我创建的矩形 我需要使用 system drawing graphics 问题是 我收到错误 命名空间 System 中不存在类型或命名空间名称 drawing 您是否缺少程序集引用 当我右键单击解决方案资源
  • 为什么必须通过 this 指针访问模板基类成员?

    如果下面的类不是模板 我可以简单地拥有x in the derived班级 但是 通过下面的代码 我have to use this gt x Why template
  • 生成范围 [min,max] 内的随机数 [重复]

    这个问题在这里已经有答案了 我正在使用 C 生成范围 min max 内的整数随机数 我在用 int random int int min int max return min rand max min 但我认为上面的代码适用于范围 min
  • 如何在asp.net core 6中注入IConfiguration

    web api 应用程序中不再有 Startup cs 我们以前可以注入IConfiguration进入那个Startup class public class Startup public Startup IConfiguration c
  • 在Framework 4.6项目中使用.net core DLL

    我已经在 net core 2 0 中构建了一个 DLL 现在我想在使用 net 4 6 1 框架的 WinForms 项目中使用它 我可以引用该 dll 但收到 System IO FileLoadException 表示找不到 Syst
  • char[length]初始化并处理

    我定义了一个字符数组 char d 6 如果我在以下方面有误 请纠正我 此时没有为变量分配内存d 现在我要初始化它 d aaaaa 这种初始化之后 就不需要释放内存了 它将自动完成 我怎么知道是否char 被初始化了吗 我正在寻找类似的模式

随机推荐

  • 如何隐藏或加密 JavaScript 代码? [复制]

    这个问题在这里已经有答案了 有没有办法隐藏或加密 JavaScript 代码以防止人们查看 复制和 或修改专有程序 您可以混淆它 但没有办法完全保护它 混淆器示例 https obfuscator io https obfuscator i
  • C# 枚举标志比较

    给定以下标志 Flags public enum Operations add 1 subtract 2 multiply 4 divide 8 eval 16 如何实现 IF 条件来执行每个操作 在我的尝试中 第一个条件适用于添加 评估
  • Office Web 应用程序 - 删除按钮

    有没有办法从 Office Web 应用程序中删除按钮或完整功能区 我想删除下载 添加到一个驱动器等 示例网址如下 https view officeapps live com op view aspx src www cse lehigh
  • jQuery AJAX - 意外的标记 + 解析器错误

    我今天使用 jQuery 和 AJAX 编写了一个脚本 但出现了一些错误 剧本 function changeAdmin id document ready function ta modarea id fadeOut fast ta m
  • 如何按不在数据框中的数组对数据框进行排序

    我已经在不同的上下文中多次回答过这个问题 并且我意识到在任何地方都没有指定好的规范方法 因此 设置一个简单的问题 Problem df pd DataFrame dict A range 6 B 1 2 3 print df A B 0 0
  • Python 在变量后面插入回车符和换行符,而不仅仅是换行符

    我创建了一个 python 脚本来输出 AAAA ZZZZ 等每 1 4 个字符的字母组合 它工作得很好 但是我只需要在打印变量的末尾插入换行符 因为我将其用作要在另一个脚本中使用的单词列表 我尝试同时使用 r 和 n 但是使用 n 在末尾
  • 如何通过简写“if-else”结果来中断循环?

    假设我在循环内有一个简写的 if else 语句 如下例所示 for a b c b c More unnecessary code if the result was true 我想通过条件的结果来打破循环 for a b c b bre
  • iOS 编写宏检测 3.5 英寸或 4 英寸显示器 [重复]

    这个问题在这里已经有答案了 我正在尝试编写一个宏来确定设备是 3 5 英寸还是 4 英寸 下面有一些类似的东西 define IOS OLDER THAN 6 UIDevice currentDevice systemVersion flo
  • Elixir 中的“|>”是什么意思?

    我正在阅读 github 上的一些 Elixir 代码 我发现 gt 经常被使用 它没有出现在列表中手术 http elixir lang org getting started basic operators html在文档网站上 这是什
  • 如何将 HTML 输入类型属性从“密码”更改为“文本”?

    我想更改 HTML input 元素 type 属性 从 type password 更改为 type text 我知道通过 ID 查找元素会更容易 但并非每个页面都有相同的密码输入 ID 如何定位密码输入并将其内部值更改为文本类型 我有这
  • 需要击败 GC 并在对象超出范围后将其销毁

    我有几段代码需要用互斥锁来保护 问题是代码看起来像这样 lock mylockobject if foo throw new MyException foo failed if bar throw new MyException bar f
  • .Net/C# 构建工具 - NAnt 是首选工具吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我即将设置 net C 项目的自动构建 我在网上搜索了很多 有很多关于这个名为 NAnt 的工具的参考 我的问题是 NAnt 被认为是一个很好的
  • Android 2.2 中的 org.apache.http.client 是什么版本?如何在应用程序中使用lib?

    如何找出 Android 2 2 中 HTTPclient 的版本 我认为这是重要的信息 但我在 Google 的 API 文档中没有看到任何内容http developer android com reference org apache
  • 分叉 AOSP 清单后如何正确运行存储库同步?

    最近我决定深入 Android 开源项目世界 这就是我对 AOSP 生活的想象 为了深入了解 AOSP 世界 我需要亲自动手修改项目中的代码 我将在三台不同的计算机上执行此操作 因此我需要将我的工作存储在远程 git 存储库中 所以我需要在
  • C#:从 lambda 表达式获取链中的属性名称

    我正在开发一个使用 lambda 表达式来指定属性的 API 我正在使用这段与此类似的著名代码 这是简化且不完整的 只是为了弄清楚我在说什么 public void Foo
  • 按列获取数据网格的值

    您如何知道标题列中特定行的值id row index id 0 54 1 34 2 12 select id where row index 1例如 我应该得到 34 的值 This is datagrid 不太确定您在寻找这个 无论如何
  • 如何在vscode webview中使用iframe

    在 vscode extension webview catcoding 中 我想加载外部网页 如 google i tried panel webview html 谷歌有X Frame Options 响应头设置为SAMEORIGIN
  • 是否可以通过 ADFS 创建新用户?

    我正在研究使用 SAML 和 ADFS 设置单点登录所涉及的内容 我无法回答并且似乎无法在任何地方找到一个查询 是否可以通过 ADFS 执行通常的用户配置文件操作 例如 我可以通过 ADFS 注册新用户吗 我可以通过 ADFS 提供忘记密码
  • 专注于模式内的输入会导致 ios 向下滚动

    我遇到了模态内的输入并提出了问题 当用户打开模式时 它会覆盖整个页面 并设置为高 z index 和绝对位置 一旦用户专注于模式内的输入 在 iOS 上 整个页面就会由于某种原因向下滚动 我认为 ios 的行为是将输入字段向上滚动一点 以便
  • 从调试切换到发布时,Visual Studio C# 项目会强制重建,反之亦然

    每次从调试切换到发布时 Visual Studio 2012 C 项目似乎都会强制重建 反之亦然 即使项目中没有任何更改 对于独立项目来说 这种情况不会发生 但是 如果您将单个项目引用添加到类库 那么每次更改为不同的构建配置时 它就会开始表