我正在玩PowerShell和C#。
具体来说,我使用Add-Type
命令将C#代码编译为.dll
文件。
但是问题在于:运行.dll
它需要一个入口点或我理解的导出,从中调用函数。
要创建这些导出,我找到了UnmanagedExports包。有了这个我就能创造一些出口。接下来我想将其编译为.dll
文件并尝试运行它。我来给你一个示例代码。
$code = @'
using System;
using System.Net;
using System.IO;
using System.Diagnostics;
using RGiesecke.DllExport;
namespace HelloWorldll
{
class Program
{
[DllExport("DllMain", CallingConvention = CallingConvention.Winapi)]
public static void DllMain()
{
Console.WriteLine("Hello World");
}
}
}
'@
$FilePath = "C:\Some\Path\To\File.dll"
Add-Type -TypeDefinition $code -OutputAssembly $FilePath
问题是在Powershell中无法识别RGiesecke命名空间,所以我的主要问题是。
是否有另一种方法可以使用第三方软件/工具创建/定义导出? 有没有方法/命令在编译之前安装INSIDE THOW POWERSHELL SCRIPT包以确保找到这个包?
我也读过这篇文章,但对我没那么帮助,所以也许有人可以从这里找到帮助我的想法,但到目前为止我没有。 install NuGet via PowerShell script
Add-Type:c:\ Users ... \ AppData \ Local \ Temp \ ahkmqrli.0.cs(6):找不到typen或命名空间名称'RGiesecke'(您是否缺少using指令或汇编参考?)