我有一个Visual Studio 2008解决方案,我已经导入了许多预先存在的项目.这些项目是混合语言示例代码(C#,VB,C++/CLI).它们目前有多种配置,但我希望每个项目只有一个"Debug"配置.
在配置管理器中,我删除了其他配置(例如"Release"),但是当我这样做时,有一条警告消息告诉我它们不会从各个项目中删除.
事实上,当我导航到一个单独的项目时,它仍然具有"Release"和其他配置,即使在解决方案级别只有"Debug".
如何从每个项目中最好地删除这些额外配置?我是否在GUI中忽略了某些方法,或者我应该直接编辑项目文件?
如果我有一个排序列表(比如快速排序),如果我要添加很多值,最好暂停排序,将它们添加到最后,然后排序,或者使用二进制文件来正确放置项目添加它们.如果这些项目是随机的,或者已经或多或少的顺序,它会有所不同吗?
我有一个名为"Entries"的简单数据库表:
class CreateEntries < ActiveRecord::Migration
def self.up
create_table :entries do |t|
t.string :firstName
t.string :lastName
#etc.
t.timestamps
end
end
def self.down
drop_table :entries
end
end
Run Code Online (Sandbox Code Playgroud)
如何编写一个处理程序,将把条目表的内容作为CSV文件返回(理想情况下它将在Excel中自动打开)?
class EntriesController < ApplicationController
def getcsv
@entries = Entry.find( :all )
# ??? NOW WHAT ????
end
end
Run Code Online (Sandbox Code Playgroud) 在PHP中,我可以使用普通函数作为变量而没有问题,但我还没有弄清楚如何使用静态方法.我只是错过了正确的语法,或者这是不可能的?
(编辑:第一个建议的答案似乎不起作用.我已扩展我的示例以显示返回的错误.)
function foo1($a,$b) { return $a/$b; }
class Bar
{
static function foo2($a,$b) { return $a/$b; }
public function UseReferences()
{
// WORKS FINE:
$fn = foo1;
print $fn(1,1);
// WORKS FINE:
print self::foo2(2,1);
print Bar::foo2(3,1);
// DOES NOT WORK ... error: Undefined class constant 'foo2'
//$fn = self::foo2;
//print $fn(4,1);
// DOES NOT WORK ... error: Call to undefined function self::foo2()
//$fn = 'self::foo2';
//print $fn(5,1);
// DOES NOT WORK ... error: Call to undefined function Bar::foo2()
//$fn …Run Code Online (Sandbox Code Playgroud) 在分析C#应用程序时,我发现在称为"ThePreStub"的系统(?)方法中有相当大的CPU使用率.这是什么?
当我将图像(<img>)转换为超链接(通过将其包装<a>)时,Firefox会在图像周围添加黑色边框.Safari不显示相同的边框.哪种CSS声明最能消除边界?
我一直在解决项目Euler的问题,其他人发布的一些解决方案使用三重标志,即'@@@'.在v7的帮助浏览器中,我找到了@@的条目(表示它是'Apply'的中缀版本),但没有@@@的条目.这是什么意思?
编辑:这是一个例子,我认为我可以发布而不违反Project Euler的精神:
bloc[n_, f_][t_] := {f @@@ #, #~Tr~f} & /@ Join @@ Partition[t, {n, n}, 1];
Run Code Online (Sandbox Code Playgroud) 我最近听说过很多关于.NET 4.0中TPL的播客.他们中的大多数使用任务描述后台活动,如下载图像或进行计算,以便工作不会干扰GUI线程.
我工作的大多数代码都有更多的多生产者/单一消费者风格,其中来自多个来源的工作项必须排队,然后按顺序处理.一个示例是日志记录,其中来自多个线程的日志行被顺序化为单个队列,以便最终写入文件或数据库.来自任何单一来源的所有记录必须保持有序,并且来自同一时刻的记录应该在最终输出中彼此"接近".
因此,多个线程或任务或任何调用队列的任何东西:
lock( _queue ) // or use a lock-free queue!
{
_queue.enqueue( some_work );
_queueSemaphore.Release();
}
Run Code Online (Sandbox Code Playgroud)
专用工作线程处理队列:
while( _queueSemaphore.WaitOne() )
{
lock( _queue )
{
some_work = _queue.dequeue();
}
deal_with( some_work );
}
Run Code Online (Sandbox Code Playgroud)
将工作线程专门用于这些任务的消费者方面似乎总是合理的.我应该使用TPL中的某些构造来编写未来的程序吗?哪一个?为什么?
如果我通过授予角色执行权限
GRANT EXECUTE ON [DBO].[MYPROC] TO MY_ROLE
Run Code Online (Sandbox Code Playgroud)
什么是删除它们的等效语法?
使用VS2010,我创建了一个名为"TfsBuildTestTarget"的Win32 C++控制台应用程序.这只是向导创建的默认控制台应用程序.我没有进行任何代码或项目更改,并且按预期在VS2010中构建正常.
然后我创建了一个MSBUILD项目文件,如下所示:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="Build">
<MSBuild Projects="TfsBuildTestTarget.sln" Targets="TfsBuildTestTarget" Properties="Configuration=Release;Platform=Win32"/>
</Target>
</Project>
Run Code Online (Sandbox Code Playgroud)
当我在这个项目文件上运行MSBUILD时,我收到以下错误:
"c:\ dev\TfsBuildTestTarget\testBuild.proj"(默认目标)(1) - >"c:\ dev\TfsBuildTestTarget\TfsBuildTestTarget.sln"(TfsBuildTe stTarget target)(2) - >(TfsBuildTestTarget target) - >
c :\ dev\TfsBuildTestTarget\TfsBuildTestTarget\TfsBuildTestTarget.vcxproj(3,14):错误MSB4066:元素中的"Label"属性无法识别.
(VS生成的)vcxproj文件中的引用行如下所示:
<ItemGroup Label="ProjectConfigurations">
Run Code Online (Sandbox Code Playgroud)
MSBuild项元素的引用不包含Label属性.
这里发生了什么?为什么VS2010生成的项目文件似乎与MSBuild不兼容?有没有办法让我在没有手动调整XML的情况下将此解决方案构建为MSBuild项目的一部分?