使用C#创建一个sysprep提供程序

本文关键字:sysprep 一个 程序 创建 使用 | 更新日期: 2023-09-27 18:20:22

如果安装的Windows机器运行SysPrep,我的应用程序需要编写一个regkey。

根据http://technet.microsoft.com/en-us/library/ee676646(WS-10).aspx#SysprepDevGuide_RegisteringYourSysprepProvider"SysPrep提供程序"必须是DLL。

由于我的应用程序是用C#编写的(我是一名初级开发人员),在使用C#时,我似乎无法导出可以通过RunDLL32运行的函数。虽然创建一个简单的控制台应用程序对我来说很容易,但SysPrep似乎只能接受DLL,而不能接受可执行程序。有没有一种方法可以用C#创建一个sysprep提供程序,或者我必须用C++(一种我不知道的语言)编写提供程序。

非常感谢任何建议!

使用C#创建一个sysprep提供程序

通常的方法是编写一个调用托管dll的C++/CLI包装器(混合模式dll),但如果你想避免C++,似乎有一个叫Robert Giesecke的人创建了一个库来导出托管函数,允许像普通C函数一样调用它们。

看看这个:https://sites.google.com/site/robertgiesecke/Home/uploads/unmanagedexports

显然,这给了你一个DllExport属性,它似乎和DllImport:一样容易使用

class Test
{
    [DllExport( "add", CallingConvention = CallingConvention.Cdecl )]
    public static int TestExport( int left, int right )
    {
        return left + right;
    } 
}

下载和一些更多信息可以在这里找到:https://nuget.org/packages/UnmanagedExports