我有一个nant构建文件设置,从cmd行可以正常工作,但在TeamCity中没有.
我已经检查过我执行的命令是从TC工作的同一目录运行并检查了所有引用但它仍然失败并出现以下错误:
[build] Compile the project using Debug configuration...
[10:30:05]: [build] msbuild (1m:18s)
[10:30:06]: [msbuild] Starting MSBuild...
[10:30:07]: [msbuild] Starting 'C:\WINDOWS\Microsoft.NET\Framework\v3.5\msbuild.exe (@"G:\TeamCity\buildAgent\work\9de21b975852dd95\src\Irm.Web.App\Irm.Web.App.sln.teamcity.msbuild.tcargs")' in 'G:\TeamCity\buildAgent\work\9de21b975852dd95'
[10:30:09]: [msbuild] MSBUILD : error MSB1025: An internal failure occurred while running MSBuild.
[10:31:18]: [msbuild] Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object.
[10:31:18]: [msbuild] at Microsoft.Build.CommandLine.MSBuildApp.BuildProject(String projectFile, String[] targets, String toolsVersion, BuildPropertyGroup propertyBag, ILogger[] loggers, LoggerVerbosity verbosity, DistributedLoggerRecord[] distributedLoggerRecords, Boolean needToValidateProject, String schemaFile, Int32 cpuCount, Boolean enableNodeReuse)
[10:31:18]: [msbuild] at …Run Code Online (Sandbox Code Playgroud) 我有一个程序,当附加的显示器数量发生变化时需要更新一些内部数据结构,例如当您将笔记本电脑放入扩展坞并且双显示器变为现实时.
在这方面有几个问题:
如果重要,那就是.NET 3.5和C#.
很抱歉这个很长的问题,它被标记为维基,因为我要求的东西可能没有一个非常具体的答案.如果它关闭了,那就这样吧.
我的主要问题是:
你如何编写一个未在基类中完全定义的流畅接口,以便使用流畅接口的程序可以在现有结构中添加新单词,并且仍然保持一个引导接口,以便在点之后,智能感知仅列出此时实际应用的关键字.
我正在重写我的IoC容器的第三次迭代.第二次迭代是为了提高性能,第三次迭代将解决一些可扩展性问题和分离问题.
基本上,可扩展性的问题是没有.我最近想要使用具有生命周期的服务,并在生命周期结束后,解决一个新的副本.例如,每分钟读取一个配置文件,但不是更频繁.我目前的IoC解决方案不支持这种方法,但添加它的唯一方法是进入基类库并在那里添加对它的支持.这对我来说意味着我无法构建可扩展的类库.平心而论,我并不打算在其中构建可扩展性,但后来我并没有充分意识到进入并稍后添加类似内容会带来多大的痛苦.
我正在寻找我的流畅的配置界面,因为我想在界面中构建完全可扩展性(或者摆脱它,我不愿意这样做)我需要以不同的方式做事.
因此,我需要你的意见.我实际上使用流畅的接口的经验很少,但我已经看到了很多使用它们的代码,因此开箱即用有一个明显的好处:
换句话说,这个:
ServiceContainer.Register<ISomeService>()
.From.ConcreteType<SomeService>()
.For.Policy("DEBUG")
.With.Scope.Container()
.And.With.Parameters
.Add<String>("connectionString", "Provider=....")
.Add<Boolean>("optimizeSql", true);
Run Code Online (Sandbox Code Playgroud)
比这更容易阅读:
ServiceContainer.Register(typeof(ISomeService), typeof(SomeService),
"DEBUG", ServiceScope.Container, new Object[] { "Provider=...", true });
Run Code Online (Sandbox Code Playgroud)
所以可读性是一个问题.
但是,程序员指导是另一种,通过在网络上或在编辑器中阅读现有代码而不易理解的东西.
基本上,当我输入这个:
ServiceContainer.Register<ISomeService>()
.From.|
^-cursor here
Run Code Online (Sandbox Code Playgroud)
然后intellisense将显示可用的分辨率类型.在我挑选那个之后,写道:
ServiceContainer.Register<ISomeService>()
.From.ConcreteType<SomeService>()
.For.|
Run Code Online (Sandbox Code Playgroud)
然后我只能在"For"关键字之后获得可用的内容,例如"Policy"等.
但是,这是一个大问题吗?您使用过的流畅界面是这样的吗?明确定义接口的警告是使用所有关键字和所有内容创建一个类或接口,以便每个逗号后的intellisense包含所有内容,但这也可能导致这是合法的(如,它编译)代码:
ServiceContainer.Register<ISomeService>()
.From.ConcreteType<SomeService>()
.From.Delegate(() => new SomeService())
.From.With.For.Policy("Test");
Run Code Online (Sandbox Code Playgroud)
所以我想构建流畅的接口,以便在您指定如何解析服务后,再也不能这样做了.
但这是典型的吗?因为我希望能够添加一堆这样的关键字,比如解析器的类型(ConcreteType,Delegate等),范围的类型(Factory,Container,Singleton,Cache等)作为扩展方法,这样程序可以定义自己的方法,而无需进入和更改基类,这意味着我需要为所有中间停止提供接口,并让实际的重要关键字.然后,这些关键字的实现必须选择一个中间停止接口以便返回.
所以看起来我需要为以下内容定义一个接口:
xyz.From.<Resolver here>.<Resolver here>.With.<Resolver here>.For.等等,但对我来说看起来很分散.
任何有流畅界面经验的人都可以回到顶部并阅读我的引用答案,并试着给我一个简短的答案吗?
我正在编写一个命令行工具来将Markdown文本转换为html输出,这似乎很容易.
但是,我想知道如何为嵌入式代码块获得良好的语法着色,就像Stack Overflow使用的那样.
有谁知道:
基本上,它需要在Stack Overflow使用的那个中具有一些相同的"智能",通过基本上最好地尝试找出用于选择正确关键字的语言.
基本上,我想要的是我自己的程序来处理如下所示的块:
if (a == 0) return true;
if (a == 1) return false; // fall-back
Run Code Online (Sandbox Code Playgroud)
Markdown Sharp,我正在使用的库,默认情况下输出上面的简单pre/code html块,没有语法着色.
我喜欢与Stack Overflow上的格式相同的处理类型,例如,上面包含蓝色的"return"关键字.
或者,嗯,在添加代码示例后检查此Stack Overflow页面的源代码后,我注意到它的格式也像一个简单的pre/code块.它是纯粹的javascript-magic在这里工作,所以也许没有这样的库?
如果没有库可以通过所使用的关键字自动确定一种可能的语言,那么如果我明确地告诉它该语言,是否会有效?由于这是"我的"markdown-commandline-tool,如果需要,我可以轻松添加语法.
我有visual Studio 2008.
我注意到我使用Visual Studio制作WPF应用程序.这是否意味着它可以完成Expression Studio的工作?
我将安装Visual Studio 2010.这是否取消了Expression Studio的必要性?
假设一个
Table "Person" having
"SSN",
"Name",
"Address"
Run Code Online (Sandbox Code Playgroud)
和另一个
Table "Contacts" having
"Contact_ID",
"Contact_Type",
"SSN" (primary key of Person)
Run Code Online (Sandbox Code Playgroud)
同样
Table "Records" having
"Record_ID",
"Record_Type",
"SSN" (primary key of Person)
Run Code Online (Sandbox Code Playgroud)
现在我希望当我更改或更新SSN in person表时,相应地在其他2个表中更改.
我问我虽然怀疑有这样的系统.
基本上我需要安排任务在将来的某个时刻执行(通常不会超过几秒或从现在开始几分钟),并且有一些方法可以取消该请求,除非为时已晚.
IE浏览器.代码看起来像这样:
var x = Scheduler.Schedule(() => SomethingSomething(), TimeSpan.FromSeconds(5));
...
x.Dispose(); // cancels the request
Run Code Online (Sandbox Code Playgroud)
.NET中有这样的系统吗?TPL中有什么可以帮助我吗?
我需要在这里的系统中的各种实例中运行这样的future-actions,而宁愿避免每个这样的类实例拥有自己的线程并处理它.
另请注意,我不想要这个(或类似的,例如通过任务):
new Thread(new ThreadStart(() =>
{
Thread.Sleep(5000);
SomethingSomething();
})).Start();
Run Code Online (Sandbox Code Playgroud)
可能会执行一些此类任务,除了接近截止日期之外,它们不需要以任何特定顺序执行,并且它们具有类似实时性能概念的任何内容并不重要.我只是想避免为每个这样的动作单独创建一个线程.
.net multithreading scheduling .net-4.0 task-parallel-library
这可能是一个基本问题.
我有两个项目:
如果我调试Silverlight应用程序,它希望使用生成的网页运行它,这当然不会启动我的Web应用程序,并且由于某些跨站点安全模型而导致Web服务调用失败.因此,即使我运行Web应用程序,Silverlight应用程序也不会使用它.
如果我调试Web应用程序(即,将其设置为启动项目并点击Debug),那么Silverlight应用程序显然已正确托管,但我无法对其进行调试.其中的任何断点都显示为空心圆.
那么我做错了什么?我应该如何配置我的项目,以便我可以启动Web应用程序,托管我的Silverlight应用程序并进行调试?
当有人告诉我时,我认为这是"面团"时刻之一,但我无法理解.
这是Visual Studio 2008,.NET 3.5和Silverlight 3.
我在我正在使用的库中看到过这种定义.我对TObjectType:CSObject的位置感到疯狂.很明显,似乎我可以在约束中使用相同的时间,因为它可以工作和编译,但这究竟意味着什么?
public class CSList<TObjectType>: CSList, IList<TObjectType>, IList
where TObjectType: CSObject<TObjectType>
Run Code Online (Sandbox Code Playgroud) 我找到了一个Propperty Changed Event的实现,我可以在没有Web中属性名称的情况下更改Call Property.然后我在这里建立了一个扩展方法
public static void OnPropertyChanged(this INotifyPropertyChanged iNotifyPropertyChanged, string propertyName = null)
{
if (propertyName == null)
propertyName = new StackTrace().GetFrame(1).GetMethod().Name.Replace("set_", "");
FieldInfo field = iNotifyPropertyChanged.GetType().GetField("PropertyChanged", BindingFlags.Instance | BindingFlags.NonPublic);
if (field == (FieldInfo) null)
return;
object obj = field.GetValue((object) iNotifyPropertyChanged);
if (obj == null)
return;
obj.GetType().GetMethod("Invoke").Invoke(obj, new object[2]
{
(object) iNotifyPropertyChanged,
(object) new PropertyChangedEventArgs(propertyName)
});
}
Run Code Online (Sandbox Code Playgroud)
所以我可以将Property更改为:
private bool _foo;
public bool Foo
{
get { _foo; }
private set
{
_foo = value;
this.OnPropertyChanged();
}
}
Run Code Online (Sandbox Code Playgroud)
但我想,如果我在使用Property更改时不必实现属性的getter和setter,那就更好了. …