小编Cha*_*les的帖子

此DLL是托管还是非托管?

我在你面前拿着一个DLL.仅使用Win32 SDK,您能告诉我这个DLL是否是.NET程序集吗?

为什么?我们的应用程序以DLL的形式加载插件.我们正在尝试扩展这些插件的定义以允许.NET程序集,但接口将是不同的,因此加载器将需要知道DLL在加载之前是管理还是非管理.

.net dll assemblies unmanaged managed

18
推荐指数
3
解决办法
1万
查看次数

是否有全局命名的读/写锁?

我有多个asp.net网络应用程序服务于一组文件.在提供文件之前,会定期更新文件,但如果文件正在使用,则无法更新文件.

我可以通过使用命名的互斥锁解决此问题,其中名称是文件路径(当然替换无效字符).我在其他情况下使用过这个,但你可以看到效率低下.一次只能有一个进程提供文件.

读取器/写入器锁是完美的,但它们被设计为在单个进程中工作.另外,我必须为每个可能更新的文件创建一个读取器/写入器锁,并且有很多.

我真正需要的是一个可以像互斥锁一样命名的读/写锁.有这样的事吗?或者可以使用现有的锁创建这样的东西?

.net locking

14
推荐指数
1
解决办法
8168
查看次数

如何从C++ Windows客户端使用ETW

我正在研究Windows事件跟踪(ETW),以允许用户模式的Windows客户端写出跟踪信息.显而易见,现有文件显然是不完整的.真正有用的是一个简单的C++示例,它使用ETW写出跟踪消息.这样的例子存在吗?您可能会推荐其他ETW文档吗?

c++ etw

14
推荐指数
2
解决办法
1万
查看次数

确定最高的.NET Framework版本

我需要从C\C++代码确定桌面计算机上安装的最高.NET框架版本.看起来我可以迭代下面的文件夹%systemroot%\Microsoft.NET\Framework,但这似乎有点容易出错.有没有更好的办法?也许我可以检查一个注册表项?谢谢.

.net c c++ version-detection

13
推荐指数
3
解决办法
8755
查看次数

DCOM有什么问题?

似乎对DCOM存在很多敌意,我很想知道为什么.对于仍然使用C++写入Win32 SKD的公司,有没有真正的理由不在当前或未来的开发中使用DCOM?Windows的某些未来版本是不是会支持它?它太脆弱了,不能经常工作吗?与其他技术相比,实施起来是否过于复杂?这是怎么回事?

dcom

11
推荐指数
3
解决办法
1978
查看次数

在构建时注入程序集版本号

我想在构建时更改C#项目的程序集版本号,方法是将其作为MSBuild命令行上的属性传递.

AssemblyInfo任务将在编译之前修改AssemblyInfo.cs中的程序集版本.这几乎是我想要的.问题是我不希望因源控制问题而更改AssemblyInfo.cs.我不希望所有这些AssemplyInfo.cs文件显示为被修改,并且每次我们进行构建时都需要检查.

我想要的是在编译后更改程序集版本号的"事物" - 可能使用post build weaving任务.这样的"事物"是否已经作为开源或零售产品存在?如果没有,有人可以指向我编写post build weaver任务的文档吗?

.net versioning msbuild assemblies msbuild-task

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

使用resharper v10重新运行测试失败

过去,我可以通过仅显示失败的测试,右键单击根节点,然后选择"创建新会话",重新运行resharper单元测试会话中的所有失败测试.在版本更新的某处,此功能丢失了.

有没有办法从resharper单元测试会话窗口重新运行失败的单元测试?

resharper unit-testing

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

如何创建多个csproj项目使用的公共post构建事件

我有几个Visual Studio 2010 C#项目.我想让他们都有相同的post build事件.基本上我希望他们在某处复制他们的输出.我想我可以在每个csproj文件中使用<import>语句来做到这一点,但我似乎无法弄清楚导入文件中需要的属性/目标.你有什么建议吗?

编辑:我尝试了以下但无法让它工作.这就是Imports.props文件的样子:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <Target Name="AfterBuild">
        <Message Text="Here I come to save the day!" />
    </Target>
</Project>
Run Code Online (Sandbox Code Playgroud)

然后我将它包含在csproj文件中:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <Import Project="Imports.props" />
    ...
Run Code Online (Sandbox Code Playgroud)

我也试过这个Imports.props:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
        <PostBuildEvent>echo Here I come to save the day!</PostBuildEvent>
    </PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)

msbuild visual-studio-2010

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

如何加载相对于DLL的附属程序集

我有一种情况,我提供使用.NET 4.0的插件DLL.此DLL使用ResourceManager加载字符串.这些字符串依次被翻译并编译成附属程序集.

我不是加载和使用我的插件DLL的主要EXE的作者.它从另一个目录运行.因此,DLL无法找到其附属程序集.ResourceManager希望在EXE目录下找到它们,而不是DLL所在的目录.

如何让ResourceManager加载相对于DLL的附属程序集?

.net c# satellite-assembly language-translation

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

ASP.NET 2.0异步用户控件不起作用

我试图让用户控件异步工作,但无论我做什么,它都会继续同步工作.作为一个测试Web应用程序,我已经将它剥离到最低限度.这将是用户控件:

<%@ Control Language="C#" %>
<script runat="server">
    SqlConnection m_oConnection;
    SqlCommand    m_oCommand;

    void Page_Load(object sender, EventArgs e)
    {
        Trace.Warn("Page_Load");
        string strDSN = ConfigurationManager.ConnectionStrings["DSN"].ConnectionString + ";async=true";
        string strSQL = "waitfor delay '00:00:10'; select * from MyTable";

        m_oConnection = new SqlConnection(strDSN);
        m_oCommand = new SqlCommand(strSQL, m_oConnection);
        m_oConnection.Open();

        Page.RegisterAsyncTask(new PageAsyncTask(new BeginEventHandler(BeginHandler), new EndEventHandler(EndHandler), new EndEventHandler(TimeoutHandler), null, true));
        Page.ExecuteRegisteredAsyncTasks();
    }

    IAsyncResult BeginHandler(object src, EventArgs e, AsyncCallback cb, object state)
    {
        Trace.Warn("BeginHandler");
        return m_oCommand.BeginExecuteReader(cb, state);
    }

    void EndHandler(IAsyncResult ar)
    {
        Trace.Warn("EndHandler");
        GridView1.DataSource = m_oCommand.EndExecuteReader(ar);
        GridView1.DataBind();
        m_oConnection.Close(); …
Run Code Online (Sandbox Code Playgroud)

asp.net user-controls asynchronous

4
推荐指数
1
解决办法
6921
查看次数