DllExport icon indicating copy to clipboard operation
DllExport copied to clipboard

Can I use this on a project that does not have a solution?

Open CoenraadS opened this issue 3 years ago • 3 comments

. . .

The question is related to:

  • DllExport -version: 1.7.4

Hi, I am using a project with no solution, and the GUI can't seem to handle this:

image

Is it possible?

CoenraadS avatar Feb 19 '22 12:02 CoenraadS

Hello,

Looks like it's not possible for current version but you can either create solution in IDE

  1. "Create a new project" - "Blank Solution"
  2. Right click - "Add" - "Existing project" - Choose .csproj, .vbproj, .fsproj etc.
  3. Save then try again.

Or generate it programmatically using MvsSln, for example, for all found .csproj something like:

string dir = @"<path to dir>\";

List<ProjectItem> projects = new();
List<IConfPlatformPrj> pcfg = new();
ConfigSln scfg = new("Debug", "arch");

foreach(string f in Directory.GetFiles(dir, "*.csproj", SearchOption.AllDirectories))
{
    string fprj = dir.MakeRelativePath(f);
    ProjectItem item = new(Path.GetDirectoryName(fprj), ProjectType.Cs, fprj);
    projects.Add(item);
    pcfg.Add(new ConfigPrj(scfg.Configuration, scfg.Platform, item.pGuid, build:true, scfg));
}

SlnHeader header = new();
header.SetFormatVersion("11.0");

save to disk

using SlnWriter w = new
(
    Path.Combine(dir, ".sln"),
    new Dictionary<Type, HandlerValue>()
    {
        [typeof(LVisualStudioVersion)] = new(new WVisualStudioVersion(header)),
        [typeof(LProject)] = new(new WProject(projects, new LProjectDependencies())),
        [typeof(LSolutionConfigurationPlatforms)] = new(new WSolutionConfigurationPlatforms(new[] { scfg })),
        [typeof(LProjectConfigurationPlatforms)] = new(new WProjectConfigurationPlatforms(pcfg)),
    }
);
w.Write(new[]
{
    new Section(new LVisualStudioVersion(), null),
    new Section(new LProject(), null),
    new Section(null, "Global"),
    new Section(new LSolutionConfigurationPlatforms(), null),
    new Section(new LProjectConfigurationPlatforms(), null),
    new Section(null, "EndGlobal"),
});

Keep issue open to consider some automatic generation in future releases.

3F avatar Feb 19 '22 15:02 3F

Any progress on this issue? I'm trying to get my tool to support exporting powershell functions in the dll symbol list, and I'm having problems with how to export C# functions as win32 symbols it generates C# code file and compiles it directly to .NETFramework4.7 using CodeDom, I'm not sure how to use DllExport in the generated code....

steve02081504 avatar Jan 17 '24 10:01 steve02081504