当我真的想点击"构建"时,我经常偶然点击"重建".如果此项目存在依赖关系,则此重建过程可能需要很长时间...
你知道任何插件或配置让visual studio问我是否确定要重建这个项目?
我希望有办法处理这种情况.
我有一堆VS 2005 C++项目,它们构建了许多dll和可执行文件,它们是大型相互依赖文件层次结构的一小部分.为了调试文件,我通过post-build事件将构建的execs/dll复制到层次结构中.有时我更新我的层次结构,但让我的所有项目都是最新的 - 在这种情况下,我需要做的就是执行构建后事件(即复制文件)而不重建所有源.有办法吗?
似乎Visual Studio 2012 C#项目每次从Debug切换到Release时都会强制重建,反之亦然,即使项目中没有任何更改也是如此.对于独立项目,这不会发生 - 但如果您将一个项目引用添加到类库,则每次更改为不同的构建配置时,它都会开始显示该行为.每当配置选择发生变化时,我都会将其跟踪到force.build
文件的生成(in obj\Debug
或obj\Release
).为什么是这样?可以禁用吗?我认为切换配置本身不应该需要重建.我找不到任何提及"force.build"文件和/或如何在任何文档中禁用此"功能".
要重新创建问题:
File
/New Project...
Visual C#
- > Console Application
.保持生成的代码不变.Add
- >New Project...
Visual C#
- > Class Library
.保持生成的代码不变.ConsoleApplication1
解决方案资源管理器中的,然后选择Add Reference...
ClassLibrary1
的Solution
- > Projects
和命中OK
.Debug
配置中.它正如预期的那样构建.Release
配置并再次构建.它正如预期的那样构建.Debug
并重新构建.它构建,它不应该.它已经建好了,对吗?我们所做的就是更改目标配置选择.这是一个错误吗?有解决方法吗?
我有这个例子:
@override
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: Padding(
padding: const EdgeInsets.all(30),
child: GestureDetector(
onTap: () {
print('Hide keyboard!!!');
FocusScope.of(context).unfocus();
},
child: Column(
children: [
Text(DateTime.now().toIso8601String()),
TextFormField()
],
),
),
),
),
);
}
Run Code Online (Sandbox Code Playgroud)
当键盘出现或隐藏时,它会导致小部件重建。为什么会出现这种情况?
在Visual Studio 2008中,我们运行一个post build事件,该事件调用NANT,然后创建我们的配置文件.
例如
if $(SolutionDir) == . GOTO end
nant -buildfile:$(SolutionDir)default.build create..web.config
Run Code Online (Sandbox Code Playgroud)
有没有办法只在ReBuild上运行它?
使用make时,我可以指定'make -B'来强制重建.
但是如何用scons指定它,强制重建'all'或强制重建特定文件夹?谢谢.
我已经设法通过删除DebugType = "$(DebugType)"
下面的xml文件中的行来重建项目.这条线真正做了什么,为什么它可以解决我的问题.我有错误,因为我从源代码树中提取新代码.
<Target Name="XamlC">
<XamlCTask
Assembly = "$(IntermediateOutputPath)$(TargetFileName)"
ReferencePath = "@(ReferencePath)"
Verbosity = "2"
OptimizeIL = "true"
DebugSymbols = "$(DebugSymbols)"
/>
</Target>
Run Code Online (Sandbox Code Playgroud) 当我运行时yarn install
,我的本机插件总是被重建。可以看出,即使没有更新任何内容,也node-gyp rebuild
运行命令而不是node-gyp build
。
caros@ubuntu:~/Developer/xviz-converter$ yarn install
yarn install v1.16.0
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
$ node-gyp rebuild
gyp info it worked if it ends with ok
gyp info using node-gyp@3.8.0
gyp info using node@10.16.0 | linux | x64
gyp info spawn /usr/bin/python2
....
Run Code Online (Sandbox Code Playgroud)
如何让纱线运行node-gyp build
而不是node-gyp rebuild
?完全重建非常耗时。
我正在尝试实现一个带有 2 个嵌套可滚动列表的 DraggableScrollableSheet 。
我无法使用开箱即用的 NestedScrollView 类(我已经尝试过它,但我无法让它工作,因为它似乎是为一个前面的标题条和只有一个可滚动列表而设计的)。
我使用 CustomScrollView 类的方法通常似乎有效,但不幸的是它带来了另一个问题:每次用户拖动工作表时,所有条子都会在每一帧中重建。这太慢了。
我打开了一个简单的测试用例来排除它不是任何复杂的小部件/提供者/消费者等逻辑的错误。即使使用这些简单的小部件,所有条子也会每帧重建一次......
这是框架中的错误还是我在这里做错了什么?
非常感谢...
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
visualDensity: VisualDensity.adaptivePlatformDensity,
),
home: DraggableScrollableActuator(child: MyHomePage(title: 'Flutter Demo Home Page')),
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key key, this.title}) : super(key: key);
final String title;
@override
_MyHomePageState …
Run Code Online (Sandbox Code Playgroud) 因此,对于我的项目,我正在使用 Riverpod,并且正在创建应用程序的主页。这棵树看起来像这样 ->
CommunityView(Stateful Widget)
WillPopScope
ProviderScope
Consumer
Scaffold
...and so on
Run Code Online (Sandbox Code Playgroud)
现在在 CommunityView Widget 的 build 方法中,
final params = _VSControllerParams(
selectedFamily: widget.selectedFamily,
);
print('familiesStatus: rebuild main');
return WillPopScope(
onWillPop: onWillPop,
child: ProviderScope(
overrides: [_paramsProvider.overrideWithValue(params)],
child: Consumer(
builder: (context, watch, child) {
print('familiesStatus: rebuild consumer');
final state = watch(_vsProvider(params));
final stateController = watch(_vsProvider(params).notifier);
Run Code Online (Sandbox Code Playgroud)
打印rebuild main
只发生一次,而rebuild consumer
打印发生两次。以前的主页获取数据,然后根据网络响应显示获取的数据或错误。现在我使用枚举来获取加载状态,即 ApiStatus.loading 是初始状态,然后 ApiStatus.success 或失败取决于响应。现在,我所做的导致此问题的更改是 -> 我在 initstate 中添加了一个函数调用,用于获取本地保存的缓存并从中加载数据。所以发生的事情是 ApiStatus.loading->ApiStatus.success(已获取缓存)->ApiStatus.loading(以某种方式重建整个小部件)->ApiStatus.success(再次获取缓存)->ApiStatus.success(从互联网获取数据)。所以我不确定为什么在获取缓存时第一次重建。
现在为了解决这个问题,我首先尝试在缓存方法调用中查找导致此重建的任何原因,但即使进行大量调试也无法找到任何原因。然后我想创建一个全局参数,如下所示
bool fetchDataFromCache = true;
Run Code Online (Sandbox Code Playgroud)
然后在 initState 内部,我调用 fetch Cache …