question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Unable to get working using .NET 6

See original GitHub issue

. . .

The question is related to:

  • DllExport -version: v1.7.4.29858+c1cc52f
  • Copy-paste from Data tab:
Installed: True; 1.7.4+c1cc52f; invoked: 1.7.4
Project type: Cs
Storage: ProjectFiles
Compiler.Platform: x86
Compiler.ordinalsBase: 1
Compiler.rSysObj: False
Compiler.ourILAsm: False
Compiler.customILAsm: 
Compiler.genExpLib: False
Compiler.peCheck: PeIl
Compiler.patches: None
PreProc.Type: None
PreProc.Cmd: 
PostProc.Type: None
PostProc.ProcEnv: $(SolutionPath);$(MSBuildThisFileFullPath)
PostProc.Cmd: 
SignAssembly: 
Identifier: BAE5D459-7C5A-46D1-9FE6-CF553C60A438
Instance: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin\amd64\MSBuild.exe
Project path: C:\Users\user\Documents\Visual Studio Projects\COMLibraryCore\COMLibraryCore\COMLibraryCore.csproj
Action: Configure
PlatformTarget: x86
TargetFramework: net6.0-windows
TargetFrameworks: 
TargetFrameworkVersion: 
RootNamespace: 
AssemblyName: 
MgrArgs: 
MetaLib: tools\raw\lib\net20\DllExport.dll
MetaCor: tools\raw\lib\netstd\DllExport.dll
Proxy: 
StoragePath: .net.dllexport.targets
ddNS: COMLibraryCore
ddNS max buffer: 500
UseCecil: True
intermediateFiles: False
timeout: 30000
Options: None
RootPath: C:\Users\user\Documents\Visual Studio Projects\COMLibraryCore\
PkgPath: C:\Users\user\Documents\Visual Studio Projects\COMLibraryCore\packages\\DllExport.1.7.4\
SlnFile: 
SlnDir: C:\Users\user\Documents\Visual Studio Projects\COMLibraryCore\
DxpTarget: tools\net.r_eg.DllExport.targets
MsgGuiLevel: -1
LockIfError: 

Goal: To call a C# library DLL from Access VBA.

I got the below code working using .NET Framework 4.8:

using System.Runtime.InteropServices;

namespace COMLibrary;

public interface IComClass1Interface
{
    string HelloWorld { get; }
    string Delme();
}

[ComVisible(true)]
public class ComClass1 : IComClass1Interface
{
    public string HelloWorld { get { return "From DLL: Hello, World!"; } }

    public string Delme() => "From DLL: Hello, World!";
}

static class UnmanagedExports
{
    [DllExport]
    [return: MarshalAs(UnmanagedType.IDispatch)]
    static object CreateDotNetObject()
    {
        return new ComClass1();
    }
}

And calling from VBA:

Public Declare Function CreateDotNetObject Lib "C:\Users\user\Documents\Visual Studio Projects\COMLibrary\COMLibrary\bin\Debug\COMLibrary.dll" () As Object

Public Sub test()

    Dim o
    Set o = CreateDotNetObject()
    MsgBox o.HelloWorld
    Set o = Nothing

End Sub

However, when I use the same code in a .NET 6 project MS Access crashes when the VBA call is made. I’ve tried changing several things with no success. Dependencies tool shows the same CreateDotNetObject entry point in the DLL file, so it’s not that.

What do I need to do to get this working with .NET 6?

Issue Analytics

  • State:closed
  • Created 2 years ago
  • Comments:8 (4 by maintainers)

github_iconTop GitHub Comments

3reactions
3Fcommented, Jan 12, 2022

How you mean by targeting via .NET core?

@Shpendicus,

targeting via supported .NET Core TFMs

For example, .NET Core 2.2, or .NET Standard 2

<TargetFrameworks>netstandard2.0</TargetFrameworks>

Also note, lower version can be evaluated in higher Runtime. This is for the case when the module as an intermediary.

1reaction
Shpendicuscommented, Jan 13, 2022

Btw, I have donated you a monthly-fee for your work as a thanks to such big work, since every time I wanted something like COM or hard low level it’s a pain in the ass, if you are not yet that good of a programmer, so yea pls keep up the dev of “DllExport” and also “Corini” to be usable fully with .NET 6 , in that sense, that you can export a .NET object/function even when u make use of all what is in .NET 6 and C# 10 😃

Read more comments on GitHub >

github_iconTop Results From Across the Web

Visual Studio 2019 Not Showing .NET 6 Framework
To get Visual Studio 2019 to work with .NET 6 all you have to do is the following: Install the .NET 6 SDK:...
Read more >
Unable to compile .net 6.0 projects in VS 2022
I am unable to compile .net 6.0 projects in VS 2022 (version 17.4.3). I see error message that - MSB3971 The reference assemblies...
Read more >
Visual Studio 2019 unable to locate .Net Core SDK
Step 1) First run dotnet --list-sdks from the command line (as in Grzegorz Smulko's answer). Take note of the greatest version number.
Read more >
.NET 6 core snowflake connector with External Browser ...
NET 6 core snowflake connector with External Browser Authentication failed with error. I am followed steps listed in below article.
Read more >
Unable to locate the .NET SDK: The Reasons - Hamid Mosalla
Navigate to C:\Program Files\dotnet\sdk and see if you can find folders associated with different sdk versions. If you can't find any folder ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found