小编Bre*_*lle的帖子

将PackageMaker命令行构建安装程序移植到pkgbuild

我一直在尝试将Mac PackageMaker命令行构建移植到pkgbuild和productbuild但是我被卡住了.遗憾的是,除了这个StackOverflow帖子以及pkgbuildproductbuild手册页之外,我还没有找到任何记录这些新程序如何工作的内容.

这是我的问题.我创建了一个根安装目录,其中包含以下文件:

/some_path/Applications
                       /MyProgram.app
          /Library
                  /Frameworks
                             /MyFramework.framework
                                                   /[library files...]
Run Code Online (Sandbox Code Playgroud)

下面的命令行调用对PackageMaker非常有用.它创建了一个安装程序,安装了上面的所有文件.

$ /Developer/usr/bin/packagemaker \
    --title "My Program" \
    --root /some_path \
    --version 1.0.0 \
    --filter "\.DS_Store" \
    --resources ./resources/ \
    --scripts ./scripts/ \
    --root-volume-only \
    --domain system \
    --verbose \
    --no-relocate \
    --target 10.5 \
    --id com.my_company.pkg \
    --out MyProgram.pkg
Run Code Online (Sandbox Code Playgroud)

现在我正在尝试用pkgbuild编写这个并遇到一个重大问题.我使用以下电话:

$ pkgbuild \
    --root /some_path \
    --version 1.0.0 \
    --install-location "/" \
    --scripts "./scripts/" \
    --identifier "com.my_company.pkg" \
    MyProgram.pkg
Run Code Online (Sandbox Code Playgroud)

此命令构建一个安装程序,将MyProgram.framework目录复制到/ Library/Frameworks中.但是,它不会将MyProgram.app文件安装到/ Applications目录中.当我查看安装程序日志时,我看到以下消息: …

macos installer packagemaker pkgbuild

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

如何通过 NLog 记录 Entity Framework Core 操作

我想使用 NLog 以类似于 WebApi Core 的方式记录来自 Entity Framework Core 的 SQL 查询。我该如何设置?

nlog entity-framework-core .net-core entity-framework-core-2.1

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

在C#中使用PInvoke的不透明指针

我正在使用具有以下不透明句柄的第三方C库:

typedef struct _VendorHandle *VendorHandle;
Run Code Online (Sandbox Code Playgroud)

以下是供应商的C示例,说明如何加载句柄:

VendorHandle handle;
int err;
err = vendorLoadFile(&handle, "something.bin");
Run Code Online (Sandbox Code Playgroud)

我试图使用以下声明在C#中使用PInvoke调用此方法:

[DllImport("VendorLib.dll")]
static extern int vendorLoadFile(IntPtr handle, string path);
Run Code Online (Sandbox Code Playgroud)

然后我添加了以下代码来使用声明:

IntPtr handle = new IntPtr();
int code = vendorLoadFile(handle, path);
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我收到以下错误:

尝试读取或写入受保护的内存.这通常表明其他内存已损坏.

我知道DLL很好,PInvoke正在工作,因为我正在执行他们的vendorVersion()方法所以它必须是别的我做错了.

c# pinvoke pointers

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

是否有可以测试非程序集(DLL)的.NET单元测试框架?

我已经使用了NUnit多年,但一直很恼火,你被迫将所有可测试的函数移动到一个单独的程序集(DLL),以便您可以对它们进行编写/运行测试.例如,我有一个Windows窗体项目(我在这个例子中使用MyProgram),它有几个我想测试的类.使用NUnit,您必须将这些类提取到另一个程序集(DLL)项目中,以便可以运行测试.所以我的项目,曾经只包含一个项目MyProgram,现在需要3个项目:

  1. MyProgram(Windows窗体应用程序)
  2. MyProgramLib(要进行单元测试的装配,是MyProgram的一部分)
  3. MyTestLib(NUnit测试程序集)

你可能会问为什么这是一个问题.我有几个原因:

  1. 构建复杂性:现在我需要在项目中创建和测试新程序集.
  2. 开发速度:开发人员需要时间切换到不同的项目来添加/编辑在主应用程序中更具逻辑意义的方法.
  3. 难以管理:管理代码很困难.开发人员最终编写的方法非常冗长且冗长,以描述代码试图实现的具体内容.

我知道测试就像Java和Maven一样.我可以编写单元测试,我不需要创建MyProgramLib项目.

任何其他.NET单元测试框架(xUnit,MSTest,MbUnit等)是否支持没有MyProgramLib要求的编写测试?

.net unit-testing

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