M Samples/InterceptNameChanger/DllMain.cs => Samples/InterceptNameChanger/DllMain.cs +8 -9
@@ 23,22 23,21 @@ namespace InterceptNameChanger
/// <summary>
/// The main entrypoint method of the dll.
/// </summary>
- /// <param name="handle">The handle of the module.</param>
- [DllExport]
- public static void Main(IntPtr handle)
+ [UnmanagedCallersOnly(EntryPoint = "Main")]
+ public static void Main()
{
AllocConsole();
Console.WriteLine("Hello from InterceptNameChanger DllMain entry point.");
new Thread(() =>
{
- try
- {
- new NameChanger().RunAsync().GetAwaiter().GetResult();
+ try
+ {
+ new NameChanger().RunAsync().GetAwaiter().GetResult();
}
- catch (Exception e)
- {
- Console.WriteLine(e.ToString());
+ catch (Exception e)
+ {
+ Console.WriteLine(e.ToString());
}
}).Start();
}
M Samples/InterceptNameChanger/InterceptNameChanger.csproj => Samples/InterceptNameChanger/InterceptNameChanger.csproj +1 -43
@@ 3,35 3,13 @@
<TargetFramework>net6.0</TargetFramework>
<Nullable>enable</Nullable>
<LangVersion>10</LangVersion>
- </PropertyGroup>
- <PropertyGroup>
- <DllExportIdent>89E4EE92-5848-4390-A6A7-34972FE923F5</DllExportIdent>
- <DllExportMetaLibName>DllExport.dll</DllExportMetaLibName>
- <DllExportNamespace>InterceptNameChanger</DllExportNamespace>
- <DllExportDDNSCecil>true</DllExportDDNSCecil>
- <PlatformTarget>x86</PlatformTarget>
- <DllExportOrdinalsBase>7</DllExportOrdinalsBase>
- <DllExportGenExpLib>false</DllExportGenExpLib>
- <DllExportOurILAsm>false</DllExportOurILAsm>
- <DllExportSysObjRebase>false</DllExportSysObjRebase>
- <DllExportLeaveIntermediateFiles>false</DllExportLeaveIntermediateFiles>
- <DllExportTimeout>30000</DllExportTimeout>
- <DllExportPeCheck>2</DllExportPeCheck>
- <DllExportPatches>0</DllExportPatches>
- <DllExportPreProcType>0</DllExportPreProcType>
- <DllExportPostProcType>0</DllExportPostProcType>
- <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
+ <GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Costura.Fody" Version="5.7.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
- <PackageReference Include="DllExport">
- <Version>1.7.4</Version>
- <Visible>false</Visible>
- <Wz>1</Wz>
- </PackageReference>
<PackageReference Include="Fody" Version="6.6.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
@@ 44,24 22,4 @@
<ProjectReference Include="..\..\Core\NosSmooth.Core\NosSmooth.Core.csproj" />
<ProjectReference Include="..\..\Local\NosSmooth.LocalClient\NosSmooth.LocalClient.csproj" />
</ItemGroup>
- <ImportGroup Label=".NET DllExport">
- <Import Project="$(SolutionDir)packages\DllExport.1.7.4\tools\net.r_eg.DllExport.targets" Condition="Exists($([MSBuild]::Escape('$(SolutionDir)packages\DllExport.1.7.4\tools\net.r_eg.DllExport.targets')))" Label="8337224c9ad9e356" />
- </ImportGroup>
- <Target Name="DllExportRestorePkg" BeforeTargets="PrepareForBuild">
- <Error Condition="!Exists('$(SolutionDir)DllExport.bat')" Text="DllExport.bat is not found. Path: '$(SolutionDir)' - https://github.com/3F/DllExport" />
- <Exec Condition="('$(DllExportModImported)' != 'true' Or !Exists('$(SolutionDir)packages\DllExport.1.7.4\tools\net.r_eg.DllExport.targets')) And Exists('$(SolutionDir)DllExport.bat')" Command=".\DllExport.bat -action Restore" WorkingDirectory="$(SolutionDir)" />
- <MSBuild Condition="'$(DllExportModImported)' != 'true'" Projects="$(SolutionDir)packages\DllExport.1.7.4\tools\net.r_eg.DllExport.targets" Targets="DllExportMetaXBaseTarget" Properties="TargetFramework=$(TargetFramework)">
- <Output TaskParameter="TargetOutputs" PropertyName="DllExportMetaXBase" />
- </MSBuild>
- <ItemGroup>
- <Reference Include="DllExport, PublicKeyToken=8337224c9ad9e356">
- <HintPath>$(SolutionDir)packages\DllExport.1.7.4\gcache\$(DllExportMetaXBase)\$(DllExportNamespace)\$(DllExportMetaLibName)</HintPath>
- <Private>False</Private>
- <SpecificVersion>False</SpecificVersion>
- </Reference>
- </ItemGroup>
- </Target>
- <Target Name="DllExportRPkgDynamicImport" BeforeTargets="PostBuildEvent" DependsOnTargets="GetFrameworkPaths" Condition="'$(DllExportModImported)' != 'true' And '$(DllExportRPkgDyn)' != 'false'">
- <MSBuild BuildInParallel="true" UseResultsCache="true" Projects="$(MSBuildProjectFullPath)" Properties="DllExportRPkgDyn=true" Targets="Build" />
- </Target>
</Project>=
\ No newline at end of file
M Samples/SimpleChat/DllMain.cs => Samples/SimpleChat/DllMain.cs +6 -7
@@ 4,15 4,15 @@
// Copyright (c) František Boháček. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
-using System.Runtime.InteropServices;
-
+using System.Runtime.InteropServices;
+
namespace SimpleChat;
/// <summary>
/// The main entrypoint class of the dll.
/// </summary>
public class DllMain
-{
+{
[DllImport("kernel32")]
#pragma warning disable SA1600
public static extern bool AllocConsole();
@@ 21,10 21,9 @@ public class DllMain
/// <summary>
/// The main entrypoint method of the dll.
/// </summary>
- /// <param name="handle">The handle of the module.</param>
- [DllExport]
- public static void Main(IntPtr handle)
- {
+ [UnmanagedCallersOnly(EntryPoint = "Main")]
+ public static void Main()
+ {
AllocConsole();
Console.WriteLine("Hello from SimpleChat DllMain entry point.");
M Samples/SimpleChat/SimpleChat.csproj => Samples/SimpleChat/SimpleChat.csproj +1 -42
@@ 4,34 4,13 @@
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<LangVersion>10</LangVersion>
- </PropertyGroup>
- <PropertyGroup>
- <DllExportIdent>89E4EE92-5848-4390-A6A7-34972FE923F5</DllExportIdent>
- <DllExportMetaLibName>DllExport.dll</DllExportMetaLibName>
- <DllExportNamespace>SimpleChat</DllExportNamespace>
- <DllExportDDNSCecil>true</DllExportDDNSCecil>
- <PlatformTarget>x86</PlatformTarget>
- <DllExportOrdinalsBase>7</DllExportOrdinalsBase>
- <DllExportGenExpLib>false</DllExportGenExpLib>
- <DllExportOurILAsm>false</DllExportOurILAsm>
- <DllExportSysObjRebase>false</DllExportSysObjRebase>
- <DllExportLeaveIntermediateFiles>false</DllExportLeaveIntermediateFiles>
- <DllExportTimeout>30000</DllExportTimeout>
- <DllExportPeCheck>2</DllExportPeCheck>
- <DllExportPatches>0</DllExportPatches>
- <DllExportPreProcType>0</DllExportPreProcType>
- <DllExportPostProcType>0</DllExportPostProcType>
+ <GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Costura.Fody" Version="5.7.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
- <PackageReference Include="DllExport">
- <Version>1.7.4</Version>
- <Visible>false</Visible>
- <Wz>1</Wz>
- </PackageReference>
<PackageReference Include="Fody" Version="6.6.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
@@ 44,24 23,4 @@
<ProjectReference Include="..\..\Core\NosSmooth.Core\NosSmooth.Core.csproj" />
<ProjectReference Include="..\..\Local\NosSmooth.LocalClient\NosSmooth.LocalClient.csproj" />
</ItemGroup>
- <ImportGroup Label=".NET DllExport">
- <Import Project="$(SolutionDir)packages\DllExport.1.7.4\tools\net.r_eg.DllExport.targets" Condition="Exists($([MSBuild]::Escape('$(SolutionDir)packages\DllExport.1.7.4\tools\net.r_eg.DllExport.targets')))" Label="8337224c9ad9e356" />
- </ImportGroup>
- <Target Name="DllExportRestorePkg" BeforeTargets="PrepareForBuild">
- <Error Condition="!Exists('$(SolutionDir)DllExport.bat')" Text="DllExport.bat is not found. Path: '$(SolutionDir)' - https://github.com/3F/DllExport" />
- <Exec Condition="('$(DllExportModImported)' != 'true' Or !Exists('$(SolutionDir)packages\DllExport.1.7.4\tools\net.r_eg.DllExport.targets')) And Exists('$(SolutionDir)DllExport.bat')" Command=".\DllExport.bat -action Restore" WorkingDirectory="$(SolutionDir)" />
- <MSBuild Condition="'$(DllExportModImported)' != 'true'" Projects="$(SolutionDir)packages\DllExport.1.7.4\tools\net.r_eg.DllExport.targets" Targets="DllExportMetaXBaseTarget" Properties="TargetFramework=$(TargetFramework)">
- <Output TaskParameter="TargetOutputs" PropertyName="DllExportMetaXBase" />
- </MSBuild>
- <ItemGroup>
- <Reference Include="DllExport, PublicKeyToken=8337224c9ad9e356">
- <HintPath>$(SolutionDir)packages\DllExport.1.7.4\gcache\$(DllExportMetaXBase)\$(DllExportNamespace)\$(DllExportMetaLibName)</HintPath>
- <Private>False</Private>
- <SpecificVersion>False</SpecificVersion>
- </Reference>
- </ItemGroup>
- </Target>
- <Target Name="DllExportRPkgDynamicImport" BeforeTargets="PostBuildEvent" DependsOnTargets="GetFrameworkPaths" Condition="'$(DllExportModImported)' != 'true' And '$(DllExportRPkgDyn)' != 'false'">
- <MSBuild BuildInParallel="true" UseResultsCache="true" Projects="$(MSBuildProjectFullPath)" Properties="DllExportRPkgDyn=true" Targets="Build" />
- </Target>
</Project>=
\ No newline at end of file
M Samples/WalkCommands/DllMain.cs => Samples/WalkCommands/DllMain.cs +1 -1
@@ 21,7 21,7 @@ public class DllMain
/// <summary>
/// Represents the dll entrypoint method.
/// </summary>
- [DllExport]
+ [UnmanagedCallersOnly(EntryPoint = "Main")]
public static void Main()
{
AllocConsole();
M Samples/WalkCommands/WalkCommands.csproj => Samples/WalkCommands/WalkCommands.csproj +5 -42
@@ 6,23 6,8 @@
<AssemblyName>WalkCommands</AssemblyName>
<RootNamespace>WalkCommands</RootNamespace>
<LangVersion>10</LangVersion>
- </PropertyGroup>
- <PropertyGroup>
- <DllExportIdent>9C088A1D-54DE-4A9B-9C1B-DBC5BD5F5299</DllExportIdent>
- <DllExportMetaLibName>DllExport.dll</DllExportMetaLibName>
- <DllExportNamespace>WalkCommands</DllExportNamespace>
- <DllExportDDNSCecil>true</DllExportDDNSCecil>
- <PlatformTarget>x86</PlatformTarget>
- <DllExportOrdinalsBase>7</DllExportOrdinalsBase>
- <DllExportGenExpLib>false</DllExportGenExpLib>
- <DllExportOurILAsm>false</DllExportOurILAsm>
- <DllExportSysObjRebase>false</DllExportSysObjRebase>
- <DllExportLeaveIntermediateFiles>false</DllExportLeaveIntermediateFiles>
- <DllExportTimeout>30000</DllExportTimeout>
- <DllExportPeCheck>2</DllExportPeCheck>
- <DllExportPatches>0</DllExportPatches>
- <DllExportPreProcType>0</DllExportPreProcType>
- <DllExportPostProcType>0</DllExportPostProcType>
+ <GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
+ <IncludeCopyLocalFilesOutputGroup>true</IncludeCopyLocalFilesOutputGroup>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Costura.Fody">
@@ 30,11 15,6 @@
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
- <PackageReference Include="DllExport">
- <Version>1.7.4</Version>
- <Visible>false</Visible>
- <Wz>1</Wz>
- </PackageReference>
<PackageReference Include="Fody">
<Version>6.6.0</Version>
<PrivateAssets>all</PrivateAssets>
@@ 49,28 29,11 @@
<PackageReference Include="Microsoft.Extensions.Logging.Console">
<Version>6.0.0</Version>
</PackageReference>
+ <PackageReference Include="Remora.Results">
+ <Version>7.1.0</Version>
+ </PackageReference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Local\NosSmooth.LocalClient\NosSmooth.LocalClient.csproj" />
</ItemGroup>
- <ImportGroup Label=".NET DllExport">
- <Import Project="$(SolutionDir)packages\DllExport.1.7.4\tools\net.r_eg.DllExport.targets" Condition="Exists($([MSBuild]::Escape('$(SolutionDir)packages\DllExport.1.7.4\tools\net.r_eg.DllExport.targets')))" Label="8337224c9ad9e356" />
- </ImportGroup>
- <Target Name="DllExportRestorePkg" BeforeTargets="PrepareForBuild">
- <Error Condition="!Exists('$(SolutionDir)DllExport.bat')" Text="DllExport.bat is not found. Path: '$(SolutionDir)' - https://github.com/3F/DllExport" />
- <Exec Condition="('$(DllExportModImported)' != 'true' Or !Exists('$(SolutionDir)packages\DllExport.1.7.4\tools\net.r_eg.DllExport.targets')) And Exists('$(SolutionDir)DllExport.bat')" Command=".\DllExport.bat -action Restore" WorkingDirectory="$(SolutionDir)" />
- <MSBuild Condition="'$(DllExportModImported)' != 'true'" Projects="$(SolutionDir)packages\DllExport.1.7.4\tools\net.r_eg.DllExport.targets" Targets="DllExportMetaXBaseTarget" Properties="TargetFramework=$(TargetFramework)">
- <Output TaskParameter="TargetOutputs" PropertyName="DllExportMetaXBase" />
- </MSBuild>
- <ItemGroup>
- <Reference Include="DllExport, PublicKeyToken=8337224c9ad9e356">
- <HintPath>$(SolutionDir)packages\DllExport.1.7.4\gcache\$(DllExportMetaXBase)\$(DllExportNamespace)\$(DllExportMetaLibName)</HintPath>
- <Private>False</Private>
- <SpecificVersion>False</SpecificVersion>
- </Reference>
- </ItemGroup>
- </Target>
- <Target Name="DllExportRPkgDynamicImport" BeforeTargets="PostBuildEvent" DependsOnTargets="GetFrameworkPaths" Condition="'$(DllExportModImported)' != 'true' And '$(DllExportRPkgDyn)' != 'false'">
- <MSBuild BuildInParallel="true" UseResultsCache="true" Projects="$(MSBuildProjectFullPath)" Properties="DllExportRPkgDyn=true" Targets="Build" />
- </Target>
</Project>=
\ No newline at end of file