小编lys*_*cid的帖子

仅在实际构建项目时运行MSBuild目标

我有一个MSBuild文件,用于构建*/ .sln文件(构建所有存在的.sln文件).

构建使用Build目标,因此如果没有对输入文件进行任何更改,则不应再次构建任何项目.

我想只在项目实际上再次构建时才执行一些自定义目标.

如何才能做到这一点?

无论编译/构建是否实际发生,都始终调用AfterBuildAfterCompile.

.net msbuild build-process build msbuild-4.0

6
推荐指数
1
解决办法
2157
查看次数

新的C#异步功能是否在编译器中严格实现

作为一名C#程序员,他有兴趣探索"如何工作",我有兴趣了解更多关于使新异步功能工作的过程.

我关注过Eric Lippert关于异步的优秀文章系列:异步博客文章

我不记得在任何地方看到任何对此功能的实现的引用(在高级别),除了"编译器正在为我们完成大部分工作"这一事实.

这个功能严格来说是编译器功能吗?编译器是否以某种方式重写代码,那就是它?还是有其他的东西,如运行时支持,使这种情况发生?

.net c# clr asynchronous async-await

6
推荐指数
1
解决办法
578
查看次数

使用不同的mk文件构建NDK以进行发布/调试

我们有一个设置,我们的Android游戏包含一些使用ndk-build构建的本机库.

我们的项目包含以下结构:

Root
 |
 |-- jni
      |
      |-- Android.mk   // $include ( lib.mk ) and ( photon/photon.mk)
      |-- lib.mk
      |-- photon
            |
            |----- photon.mk
            |----- debug_android_armeabi.mk
            |----- release_android_armeabi.mk
Run Code Online (Sandbox Code Playgroud)

其中一个构建的库(Photon)除了它的主要文件之外还有2个额外的makefile - 一个用于调试,一个用于发布.

我的问题是 - 如何将此信息传递给ndk-build,以便在构建时可以获取正确的附加mk文件?

android android-ndk ndk-build

6
推荐指数
1
解决办法
2805
查看次数

使用WCF在另一个CLR地址空间中执行代码并返回对象

经过一些阅读,我收集.NET Remoting是一个已弃用的API,已被WCF取代.

我正在编写一个自动化框架,并希望在本地或某些远程机器上引用类型/方法的DLL,并执行它们而不考虑它们执行的位置.

我认为Remoting是要走的路,因为我猜所有功能都是在代理对象上执行的,如果它是本地对象或远程,则无关紧要.

WCF如何执行这种操作(如果有的话)或.NET Remoting是要走的路?

或许还有其他一些我没有想到的选择?

.net c# wcf proxy remoting

5
推荐指数
1
解决办法
2467
查看次数

运行NUnit测试时的错误配置文件(TD.NET)

我有一个组件从标准.NET配置(app.config)文件中读取一些配置.

当我为这个组件运行单元测试(NUnit)时(使用TD.NET),我注意到没有读取配置文件.

经检查 AppDomain.CurrentDomain.SetupInformation.ConfigurationFile

我注意到它的'值设置为C:\ Users\ltal\AppData\Local\Temp\tmp6D2F.tmp(一些临时随机位置).

为什么会发生这种情况有原因吗?(是NUnit还是TD.NET的错?)

我想我可以自己设置这个SetupInformation对象,为了测试,还没有尝试过,但仍然想知道为什么它是这样创建而不是默认.

c# nunit unit-testing testdriven.net

5
推荐指数
1
解决办法
2089
查看次数

如何从框架中正确地分离类(源级解耦)

我正在使用Microsoft XNA框架开发一个游戏项目,尽管这个问题是涉及类/系统解耦的通用问题.

假设我有一个类(简化为适合此示例),如下所示:

public class GameCell
{   
        public Color Color { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我想在多个使用C#的平台之间重用尽可能多的代码.

直接引用Color结构的问题是这种类型是在XNA程序集中定义的,在我的代码和XNA之间创建了强耦合(或依赖).

我将使用的另一个框架可能(或可能不)具有自己的Color对象,具有自己的一组属性和API.

我希望有相同的源文件"知道"自动使用XNA或其他框架的实现.

我知道其他类型的解耦方法,如IoC,但这意味着我将插入不同版本的系统/类,而不是在不同的上下文中重用相同的类.

这甚至可能吗?您如何建议保持这样的系统便携?

我已经看到了一些情况(在本机C++开发中),你将定义一组类,这些类镜像你正在使用的框架所具有的类(例如这里 - 再次定义Color),因此可以"重新定义映射"稍后根据需要使用不同的类.

另一种选择是使用#IFDEF来处理类的头部中的using语句(从XNA切换到其他平台).在这种情况下,最好的选择是什么?

c# architecture xna decoupling

5
推荐指数
1
解决办法
706
查看次数

如何处理跨应用程序域数据交换

我们正在构建一个.NET应用程序,我们加载外部代码程序集("插件").到目前为止,我们将这些程序集加载到单个(主)应用程序域中.

我们希望能够在加载后卸载它.

为此,我们正在设计一个系统,该系统将创建一个单独的辅助AppDomain来托管插件程序集,以便随意卸载.

我们用这种方法遇到的问题:

  1. 插件DLL需要与主AppDomain(例如,logger)中的类进行交互.
  2. 发送到插件dll的数据不一定标记为Serializable或从MarshalByRefObj派生.

在这种情况下,是否存在对应用程序进行分区的常见做法?我们可以采用的最佳解决方案是什么?

另一个有趣的问题 - 为什么MarshalByRef没有属性并迫使我们从一个对象派生出来?

.net c# appdomain

5
推荐指数
1
解决办法
1045
查看次数

XSLT格式代码文档中的换行符(xml)

我们的基于WinForms的应用程序获取由Visual Studio生成的文档文件(Xml文档),执行一些XSLT转换并将结果显示在表单内的WebBrowser控件中.

问题是,我们似乎无法显示换行符,例如xml文档中的标签.

例如:

        <member name="T:Genesys.AgentLoginData">
            <summary>
            This is some test summary <br />
            New line here
            </summary>
        </member>
Run Code Online (Sandbox Code Playgroud)

与XSL转换一起使用时,摘要文本将被截断为单行.

为简化起见,转换执行此操作以选择摘要文本:

<xsl:template match="member" >
<xsl:value-of select="summary" disable-output-escaping="yes" />
</xsl:template>
Run Code Online (Sandbox Code Playgroud)

我们如何才能正确地在我们的应用程序中的WebBrowser控件中显示新行?

编辑:从WebBrowser控件添加"查看源"的内容.我所追求的是"这是一种方法"之后的新行,依此类推.浏览器只是在一行中显示.

<?xml version="1.0" encoding="utf-8"?><html xmlns="http://www.w3.org/1999/xhtml"><head><title>Action Help</title><style type="text/css">
          p  {text-indent:200px;}
          li {text-indent:180px;}
          h1 {color:navy;}
          h2 {color:blueviolet}
          h4 {color:navy;}
        </style></head><body><H2 xmlns="">AgentLogin</H2><H1 xmlns=""></H1><h3 xmlns="">
            This is a method 
            And its parameter 
            Check this out
            name</P></body></html>
Run Code Online (Sandbox Code Playgroud)

.net c# xml xslt

5
推荐指数
1
解决办法
1813
查看次数

如何将大型VS解决方案分解为更小的解决方案

我们有一个VS2008解决方案文件,包含大约80个项目(是的,我知道它很糟糕).

项目安排在各种文件夹中,有些可能依赖于顶级"Libs"文件夹中的其他第三方DLL.

我们想将它重构为几个较小的.sln文件,每个文件包含合理数量的项目.

问题是,当移动项目文件时,存储在其中的相对路径将会中断,因此我们将不得不进行大量手动"补丁"来解决这个问题.

做这样的事情有没有任何工具或任何经过验证的技术?

projects-and-solutions visual-studio-2010 visual-studio

5
推荐指数
1
解决办法
169
查看次数

在WCF服务通道调度程序上安装IErrorHandler

我想在WCF服务上安装IErrorHandler的实现.

我目前正在使用此代码,它似乎没有做任何事情:

logServiceHost = new ServiceHost(typeof(Logger));
logServiceHost.AddServiceEndpoint(typeof(ILogger), binding, address);

// Implementation of IErrorHandler.
var errorHandler = new ServiceErrorHandler();

logServiceHost.Open();

// Add error handler to all channel dispatchers.
foreach (ChannelDispatcher dispatcher in logServiceHost.ChannelDispatchers)
{
    dispatcher.ErrorHandlers.Add(errorHandler);
}
Run Code Online (Sandbox Code Playgroud)

我见过的所有代码示例(包括在我用于WCF的书中)都显示了如何使用自定义创建的IServiceBehavior来安装错误扩展.这是强制性的,还是我的方法也应该有效?

.net c# wcf

5
推荐指数
1
解决办法
1253
查看次数