Skip to content

Commit f297a60

Browse files
author
Franz Wimmer
authored
Merge pull request #4 from CodefoundryDE/x64
X64
2 parents fa00ca2 + a781cd5 commit f297a60

30 files changed

+644
-64
lines changed

Changelog.md

+29-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,37 @@
11
# LegacyWrapper Changelog
22

3-
## v1.0.1
3+
## Version 3.0 [20. Aug 2017]
4+
5+
* It is now possible to load 64bit libraries in a 32bit process:
6+
7+
```csharp
8+
using (var client = new WrapperClient(TestDllPath, TargetArchitecture.Amd64))
9+
{
10+
result = (int)client.Invoke<TestStdCallDelegate>("TestStdCall", new object[] { input });
11+
}
12+
```
13+
* Please note that this will only work if the OS is 64 bit.
14+
* As the second optional parameter defaults to X86, this release should be backwards compatible.
15+
16+
## Version 2.0.1 [17. Feb 2017]
17+
18+
* This is a minor release that updates some XML docs.
19+
20+
## Version 2.0 [17. Feb 2017]
21+
22+
* This version 2.0 of LegacyWrapper adds a major performance improvement. The wrapper executable now loads the requested dll only once until disposed.
23+
* LegacyWrapper 2.0 is not backwards compatible.
24+
25+
## Version 1.1.0 [17. Feb 2017]
26+
27+
* Add support for ref parameters (values in passed parameters array will be updated)
28+
* Improve error handling (wrapper exe will not crash randomly any more)
29+
30+
## Version 1.0.1 [1. Oct 2015]
431

532
* NuGet package dll is now compiled with AnyCPU (resulted in a BadImageException)
633
* Add batch file for creating a NuGet package
734

8-
## v1.0
35+
## Version 1.0 [1. Oct 2015]
936

1037
* Initial Release

CreatePackage.bat

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
nuget.exe pack LegacyWrapper\LegacyWrapper.csproj -prop Configuration=Release -build
1+
nuget.exe pack LegacyWrapperClient\LegacyWrapperClient.csproj -prop Configuration=Release -build

GlobalAssemblyInfo.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
// Allgemeine Informationen über eine Assembly werden über die folgenden
66
// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
77
// die einer Assembly zugeordnet sind.
8-
[assembly: AssemblyDescription("LegacyWrapper uses a x86 wrapper to call legacy dlls from a 64 bit process.")]
8+
[assembly: AssemblyDescription("LegacyWrapper uses a wrapper process to call dlls from a process of the opposing architecture (X86 or AMD64).")]
99
[assembly: AssemblyConfiguration("")]
1010
[assembly: AssemblyCompany("codefoundry.de")]
1111
[assembly: AssemblyCopyright("Copyright (c) 2017, Franz Wimmer. (MIT License)")]
@@ -17,5 +17,5 @@
1717
// COM aus zugreifen müssen, sollten Sie das ComVisible-Attribut für diesen Typ auf "True" festlegen.
1818
[assembly: ComVisible(false)]
1919

20-
[assembly: AssemblyVersion("2.0.1.0")]
21-
[assembly: AssemblyFileVersion("2.0.1.0")]
20+
[assembly: AssemblyVersion("2.1.0.0")]
21+
[assembly: AssemblyFileVersion("2.1.0.0")]
File renamed without changes.

LegacyWrapper/Interop/NativeLibrary.cs LegacyWrapper.Common/Interop/NativeLibrary.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
using System.Runtime.Serialization;
2222
using LegacyWrapper.ErrorHandling;
2323

24-
namespace LegacyWrapper.Interop
24+
namespace LegacyWrapper.Common.Interop
2525
{
2626
/// <summary>
2727
/// Represents a native (unmanaged) dynamically loaded library.

LegacyWrapper.Common/LegacyWrapper.Common.csproj

+6
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,16 @@
4242
</ItemGroup>
4343
<ItemGroup>
4444
<Compile Include="ErrorHandling\LegacyWrapperException.cs" />
45+
<Compile Include="Interop\NativeLibrary.cs" />
4546
<Compile Include="Properties\AssemblyInfo.cs" />
4647
<Compile Include="Serialization\CallData.cs" />
4748
<Compile Include="Serialization\CallResult.cs" />
49+
<Compile Include="Wrapper\WrapperHelper.cs" />
4850
</ItemGroup>
51+
<ItemGroup>
52+
<None Include="Interop\LICENSE" />
53+
</ItemGroup>
54+
<ItemGroup />
4955
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
5056
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
5157
Other similar extension points exist, see Microsoft.Common.targets.

LegacyWrapper/Program.cs LegacyWrapper.Common/Wrapper/WrapperHelper.cs

+6-9
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,33 @@
11
using System;
22
using System.Collections.Generic;
3-
using System.Diagnostics;
43
using System.IO;
54
using System.IO.Pipes;
65
using System.Linq;
7-
using System.Reflection;
86
using System.Runtime.ExceptionServices;
97
using System.Runtime.InteropServices;
108
using System.Runtime.Serialization;
119
using System.Runtime.Serialization.Formatters.Binary;
1210
using System.Text;
1311
using System.Threading.Tasks;
14-
using System.Windows.Forms;
12+
using LegacyWrapper.Common.Interop;
1513
using LegacyWrapper.Common.Serialization;
1614
using LegacyWrapper.ErrorHandling;
17-
using LegacyWrapper.Interop;
1815

19-
namespace LegacyWrapper
16+
namespace LegacyWrapper.Common.Wrapper
2017
{
21-
public class Program
18+
public class WrapperHelper
2219
{
2320
private static readonly IFormatter Formatter = new BinaryFormatter();
2421

2522
/// <summary>
26-
/// Main method of the legacy dll wrapper.
23+
/// Outsourced main method of the legacy dll wrapper.
2724
/// </summary>
2825
/// <param name="args">
2926
/// The first parameter is expected to be a string.
3027
/// The Wrapper will use this string to create a named pipe.
3128
/// </param>
3229
[HandleProcessCorruptedStateExceptions]
33-
static void Main(string[] args)
30+
public static void Call(string[] args)
3431
{
3532
if (args.Length != 2)
3633
{
@@ -53,7 +50,7 @@ static void Main(string[] args)
5350
using (NativeLibrary library = NativeLibrary.Load(libraryName, NativeLibraryLoadOptions.SearchAll))
5451
{
5552
// Receive CallData from client
56-
53+
5754
while (data.Status != KeepAliveStatus.Close)
5855
{
5956
InvokeFunction(data, pipe, library);

LegacyWrapper.sln

+77-3
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,120 @@
11
Microsoft Visual Studio Solution File, Format Version 12.00
2-
# Visual Studio 14
3-
VisualStudioVersion = 14.0.25420.1
2+
# Visual Studio 15
3+
VisualStudioVersion = 15.0.26730.8
44
MinimumVisualStudioVersion = 10.0.40219.1
5-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LegacyWrapper", "LegacyWrapper\LegacyWrapper.csproj", "{B7665A68-F19C-4539-9FE1-06B14BA774E3}"
5+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LegacyWrapper32", "LegacyWrapper32\LegacyWrapper32.csproj", "{B7665A68-F19C-4539-9FE1-06B14BA774E3}"
6+
EndProject
7+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LegacyWrapper64", "LegacyWrapper64\LegacyWrapper64.csproj", "{91DF95E2-014E-406B-8EBA-98C6B50F9840}"
68
EndProject
79
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LegacyWrapperClient", "LegacyWrapperClient\LegacyWrapperClient.csproj", "{CBBA289F-8E61-4FEA-8191-2794402C1333}"
10+
ProjectSection(ProjectDependencies) = postProject
11+
{B7665A68-F19C-4539-9FE1-06B14BA774E3} = {B7665A68-F19C-4539-9FE1-06B14BA774E3}
12+
{91DF95E2-014E-406B-8EBA-98C6B50F9840} = {91DF95E2-014E-406B-8EBA-98C6B50F9840}
13+
EndProjectSection
814
EndProject
915
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LegacyWrapperTest", "LegacyWrapperTest\LegacyWrapperTest.csproj", "{93E6FBF2-3FC7-4770-9DDE-175025B5AA2C}"
16+
ProjectSection(ProjectDependencies) = postProject
17+
{B7665A68-F19C-4539-9FE1-06B14BA774E3} = {B7665A68-F19C-4539-9FE1-06B14BA774E3}
18+
{91DF95E2-014E-406B-8EBA-98C6B50F9840} = {91DF95E2-014E-406B-8EBA-98C6B50F9840}
19+
EndProjectSection
1020
EndProject
1121
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{22EB660B-6C72-4378-BF0C-D8A85E0D33B3}"
1222
ProjectSection(SolutionItems) = preProject
23+
Changelog.md = Changelog.md
1324
GlobalAssemblyInfo.cs = GlobalAssemblyInfo.cs
1425
LICENSE = LICENSE
1526
Readme.md = Readme.md
1627
EndProjectSection
1728
EndProject
1829
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LegacyWrapper.Common", "LegacyWrapper.Common\LegacyWrapper.Common.csproj", "{B9E346E3-ED4F-4824-B780-825D87BE9D48}"
1930
EndProject
31+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LegacyWrapperTestDll", "LegacyWrapperTestDll\LegacyWrapperTestDll.vcxproj", "{E53A4D07-C345-4C92-B1B6-F0E72BA7262E}"
32+
EndProject
2033
Global
2134
GlobalSection(SolutionConfigurationPlatforms) = preSolution
2235
Debug|Any CPU = Debug|Any CPU
36+
Debug|x64 = Debug|x64
37+
Debug|x86 = Debug|x86
2338
Release|Any CPU = Release|Any CPU
39+
Release|x64 = Release|x64
40+
Release|x86 = Release|x86
2441
EndGlobalSection
2542
GlobalSection(ProjectConfigurationPlatforms) = postSolution
2643
{B7665A68-F19C-4539-9FE1-06B14BA774E3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
2744
{B7665A68-F19C-4539-9FE1-06B14BA774E3}.Debug|Any CPU.Build.0 = Debug|Any CPU
45+
{B7665A68-F19C-4539-9FE1-06B14BA774E3}.Debug|x64.ActiveCfg = Debug|Any CPU
46+
{B7665A68-F19C-4539-9FE1-06B14BA774E3}.Debug|x64.Build.0 = Debug|Any CPU
47+
{B7665A68-F19C-4539-9FE1-06B14BA774E3}.Debug|x86.ActiveCfg = Debug|Any CPU
48+
{B7665A68-F19C-4539-9FE1-06B14BA774E3}.Debug|x86.Build.0 = Debug|Any CPU
2849
{B7665A68-F19C-4539-9FE1-06B14BA774E3}.Release|Any CPU.ActiveCfg = Release|Any CPU
2950
{B7665A68-F19C-4539-9FE1-06B14BA774E3}.Release|Any CPU.Build.0 = Release|Any CPU
51+
{B7665A68-F19C-4539-9FE1-06B14BA774E3}.Release|x64.ActiveCfg = Release|Any CPU
52+
{B7665A68-F19C-4539-9FE1-06B14BA774E3}.Release|x64.Build.0 = Release|Any CPU
53+
{B7665A68-F19C-4539-9FE1-06B14BA774E3}.Release|x86.ActiveCfg = Release|Any CPU
54+
{B7665A68-F19C-4539-9FE1-06B14BA774E3}.Release|x86.Build.0 = Release|Any CPU
55+
{91DF95E2-014E-406B-8EBA-98C6B50F9840}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
56+
{91DF95E2-014E-406B-8EBA-98C6B50F9840}.Debug|Any CPU.Build.0 = Debug|Any CPU
57+
{91DF95E2-014E-406B-8EBA-98C6B50F9840}.Debug|x64.ActiveCfg = Debug|Any CPU
58+
{91DF95E2-014E-406B-8EBA-98C6B50F9840}.Debug|x64.Build.0 = Debug|Any CPU
59+
{91DF95E2-014E-406B-8EBA-98C6B50F9840}.Debug|x86.ActiveCfg = Debug|Any CPU
60+
{91DF95E2-014E-406B-8EBA-98C6B50F9840}.Debug|x86.Build.0 = Debug|Any CPU
61+
{91DF95E2-014E-406B-8EBA-98C6B50F9840}.Release|Any CPU.ActiveCfg = Release|Any CPU
62+
{91DF95E2-014E-406B-8EBA-98C6B50F9840}.Release|Any CPU.Build.0 = Release|Any CPU
63+
{91DF95E2-014E-406B-8EBA-98C6B50F9840}.Release|x64.ActiveCfg = Release|Any CPU
64+
{91DF95E2-014E-406B-8EBA-98C6B50F9840}.Release|x64.Build.0 = Release|Any CPU
65+
{91DF95E2-014E-406B-8EBA-98C6B50F9840}.Release|x86.ActiveCfg = Release|Any CPU
66+
{91DF95E2-014E-406B-8EBA-98C6B50F9840}.Release|x86.Build.0 = Release|Any CPU
3067
{CBBA289F-8E61-4FEA-8191-2794402C1333}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
3168
{CBBA289F-8E61-4FEA-8191-2794402C1333}.Debug|Any CPU.Build.0 = Debug|Any CPU
69+
{CBBA289F-8E61-4FEA-8191-2794402C1333}.Debug|x64.ActiveCfg = Debug|Any CPU
70+
{CBBA289F-8E61-4FEA-8191-2794402C1333}.Debug|x64.Build.0 = Debug|Any CPU
71+
{CBBA289F-8E61-4FEA-8191-2794402C1333}.Debug|x86.ActiveCfg = Debug|Any CPU
72+
{CBBA289F-8E61-4FEA-8191-2794402C1333}.Debug|x86.Build.0 = Debug|Any CPU
3273
{CBBA289F-8E61-4FEA-8191-2794402C1333}.Release|Any CPU.ActiveCfg = Release|Any CPU
3374
{CBBA289F-8E61-4FEA-8191-2794402C1333}.Release|Any CPU.Build.0 = Release|Any CPU
75+
{CBBA289F-8E61-4FEA-8191-2794402C1333}.Release|x64.ActiveCfg = Release|Any CPU
76+
{CBBA289F-8E61-4FEA-8191-2794402C1333}.Release|x64.Build.0 = Release|Any CPU
77+
{CBBA289F-8E61-4FEA-8191-2794402C1333}.Release|x86.ActiveCfg = Release|Any CPU
78+
{CBBA289F-8E61-4FEA-8191-2794402C1333}.Release|x86.Build.0 = Release|Any CPU
3479
{93E6FBF2-3FC7-4770-9DDE-175025B5AA2C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
3580
{93E6FBF2-3FC7-4770-9DDE-175025B5AA2C}.Debug|Any CPU.Build.0 = Debug|Any CPU
81+
{93E6FBF2-3FC7-4770-9DDE-175025B5AA2C}.Debug|x64.ActiveCfg = Debug|Any CPU
82+
{93E6FBF2-3FC7-4770-9DDE-175025B5AA2C}.Debug|x64.Build.0 = Debug|Any CPU
83+
{93E6FBF2-3FC7-4770-9DDE-175025B5AA2C}.Debug|x86.ActiveCfg = Debug|Any CPU
84+
{93E6FBF2-3FC7-4770-9DDE-175025B5AA2C}.Debug|x86.Build.0 = Debug|Any CPU
3685
{93E6FBF2-3FC7-4770-9DDE-175025B5AA2C}.Release|Any CPU.ActiveCfg = Release|Any CPU
3786
{93E6FBF2-3FC7-4770-9DDE-175025B5AA2C}.Release|Any CPU.Build.0 = Release|Any CPU
87+
{93E6FBF2-3FC7-4770-9DDE-175025B5AA2C}.Release|x64.ActiveCfg = Release|Any CPU
88+
{93E6FBF2-3FC7-4770-9DDE-175025B5AA2C}.Release|x64.Build.0 = Release|Any CPU
89+
{93E6FBF2-3FC7-4770-9DDE-175025B5AA2C}.Release|x86.ActiveCfg = Release|Any CPU
90+
{93E6FBF2-3FC7-4770-9DDE-175025B5AA2C}.Release|x86.Build.0 = Release|Any CPU
3891
{B9E346E3-ED4F-4824-B780-825D87BE9D48}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
3992
{B9E346E3-ED4F-4824-B780-825D87BE9D48}.Debug|Any CPU.Build.0 = Debug|Any CPU
93+
{B9E346E3-ED4F-4824-B780-825D87BE9D48}.Debug|x64.ActiveCfg = Debug|Any CPU
94+
{B9E346E3-ED4F-4824-B780-825D87BE9D48}.Debug|x64.Build.0 = Debug|Any CPU
95+
{B9E346E3-ED4F-4824-B780-825D87BE9D48}.Debug|x86.ActiveCfg = Debug|Any CPU
96+
{B9E346E3-ED4F-4824-B780-825D87BE9D48}.Debug|x86.Build.0 = Debug|Any CPU
4097
{B9E346E3-ED4F-4824-B780-825D87BE9D48}.Release|Any CPU.ActiveCfg = Release|Any CPU
4198
{B9E346E3-ED4F-4824-B780-825D87BE9D48}.Release|Any CPU.Build.0 = Release|Any CPU
99+
{B9E346E3-ED4F-4824-B780-825D87BE9D48}.Release|x64.ActiveCfg = Release|Any CPU
100+
{B9E346E3-ED4F-4824-B780-825D87BE9D48}.Release|x64.Build.0 = Release|Any CPU
101+
{B9E346E3-ED4F-4824-B780-825D87BE9D48}.Release|x86.ActiveCfg = Release|Any CPU
102+
{B9E346E3-ED4F-4824-B780-825D87BE9D48}.Release|x86.Build.0 = Release|Any CPU
103+
{E53A4D07-C345-4C92-B1B6-F0E72BA7262E}.Debug|Any CPU.ActiveCfg = Debug|Win32
104+
{E53A4D07-C345-4C92-B1B6-F0E72BA7262E}.Debug|x64.ActiveCfg = Debug|x64
105+
{E53A4D07-C345-4C92-B1B6-F0E72BA7262E}.Debug|x64.Build.0 = Debug|x64
106+
{E53A4D07-C345-4C92-B1B6-F0E72BA7262E}.Debug|x86.ActiveCfg = Debug|Win32
107+
{E53A4D07-C345-4C92-B1B6-F0E72BA7262E}.Debug|x86.Build.0 = Debug|Win32
108+
{E53A4D07-C345-4C92-B1B6-F0E72BA7262E}.Release|Any CPU.ActiveCfg = Release|Win32
109+
{E53A4D07-C345-4C92-B1B6-F0E72BA7262E}.Release|x64.ActiveCfg = Release|x64
110+
{E53A4D07-C345-4C92-B1B6-F0E72BA7262E}.Release|x64.Build.0 = Release|x64
111+
{E53A4D07-C345-4C92-B1B6-F0E72BA7262E}.Release|x86.ActiveCfg = Release|Win32
112+
{E53A4D07-C345-4C92-B1B6-F0E72BA7262E}.Release|x86.Build.0 = Release|Win32
42113
EndGlobalSection
43114
GlobalSection(SolutionProperties) = preSolution
44115
HideSolutionNode = FALSE
45116
EndGlobalSection
117+
GlobalSection(ExtensibilityGlobals) = postSolution
118+
SolutionGuid = {865DAD1E-AF9A-4000-BF74-465B2DA26804}
119+
EndGlobalSection
46120
EndGlobal
File renamed without changes.

LegacyWrapper/LegacyWrapper.csproj LegacyWrapper32/LegacyWrapper32.csproj

+3-9
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
<ProjectGuid>{B7665A68-F19C-4539-9FE1-06B14BA774E3}</ProjectGuid>
88
<OutputType>WinExe</OutputType>
99
<AppDesignerFolder>Properties</AppDesignerFolder>
10-
<RootNamespace>LegacyWrapper</RootNamespace>
11-
<AssemblyName>Codefoundry.LegacyWrapper</AssemblyName>
10+
<RootNamespace>LegacyWrapper32</RootNamespace>
11+
<AssemblyName>Codefoundry.LegacyWrapper32</AssemblyName>
1212
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
1313
<FileAlignment>512</FileAlignment>
1414
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
@@ -50,7 +50,7 @@
5050
<WarningLevel>4</WarningLevel>
5151
</PropertyGroup>
5252
<PropertyGroup>
53-
<StartupObject>LegacyWrapper.Program</StartupObject>
53+
<StartupObject>LegacyWrapper32.Program</StartupObject>
5454
</PropertyGroup>
5555
<ItemGroup>
5656
<Reference Include="System" />
@@ -64,7 +64,6 @@
6464
<Reference Include="System.Xml" />
6565
</ItemGroup>
6666
<ItemGroup>
67-
<Compile Include="Interop\NativeLibrary.cs" />
6867
<Compile Include="Program.cs" />
6968
<Compile Include="Properties\AssemblyInfo.cs" />
7069
<Compile Include="..\GlobalAssemblyInfo.cs">
@@ -73,7 +72,6 @@
7372
</ItemGroup>
7473
<ItemGroup>
7574
<None Include="App.config" />
76-
<None Include="Interop\LICENSE" />
7775
</ItemGroup>
7876
<ItemGroup>
7977
<BootstrapperPackage Include=".NETFramework,Version=v4.5.2">
@@ -92,10 +90,6 @@
9290
<Project>{B9E346E3-ED4F-4824-B780-825D87BE9D48}</Project>
9391
<Name>LegacyWrapper.Common</Name>
9492
</ProjectReference>
95-
<ProjectReference Include="..\LegacyWrapperClient\LegacyWrapperClient.csproj">
96-
<Project>{cbba289f-8e61-4fea-8191-2794402c1333}</Project>
97-
<Name>LegacyWrapperClient</Name>
98-
</ProjectReference>
9993
</ItemGroup>
10094
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
10195
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.

LegacyWrapper32/Program.cs

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
using System.Runtime.ExceptionServices;
2+
using LegacyWrapper.Common.Wrapper;
3+
4+
namespace LegacyWrapper32
5+
{
6+
public class Program
7+
{
8+
/// <summary>
9+
/// Main method of the legacy dll wrapper.
10+
/// </summary>
11+
/// <param name="args">
12+
/// The first parameter is expected to be a string.
13+
/// The Wrapper will use this string to create a named pipe.
14+
/// </param>
15+
[HandleProcessCorruptedStateExceptions]
16+
static void Main(string[] args)
17+
{
18+
WrapperHelper.Call(args);
19+
}
20+
}
21+
}
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
using System.Reflection;
1+
using System.Reflection;
22

33
// Allgemeine Informationen über eine Assembly werden über die folgenden
44
// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
55
// die einer Assembly zugeordnet sind.
6-
[assembly: AssemblyTitle("LegacyWrapper")]
7-
[assembly: AssemblyProduct("LegacyWrapper")]
6+
[assembly: AssemblyTitle("LegacyWrapper32")]
7+
[assembly: AssemblyProduct("LegacyWrapper32")]

LegacyWrapper64/App.config

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<configuration>
3+
<startup>
4+
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
5+
</startup>
6+
</configuration>

0 commit comments

Comments
 (0)