Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von oehrle
Thema: Android Phone - Bilder kopieren
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

Hallo, hat von euch jemand eine Idee, wie man über Windows die Bilder von der Speicherkarte kopieren kann?
Klar, es gibt Tools, aber ich möchte mir selber was bauen. Damit ich flexibel reagieren kann.
Problem ist, das dieses Laufwerk ja nicht sichtbar ist (zwar im WInExplorer, aber nicht als Verzeichnis im Code).

Thema: Click-Once Deplayment-Problem
Am im Forum: Rund um die Programmierung

Hallo, danke für die Info.
Bei dem neuen Projekt mußte unter:

  • - Sicherheit ==> das Häkchen "ClickOnce"-Sicherheitseinstellungen aktivieren aktiviert werden.

Dazu ist noch "Voll vertrauenswürdige Anwendung" aktiviert.

Dann hatte es nun wieder korrekt geklappt.
Vielen Dank.

Thema: ClickOnce: MethodAccessException beim Start
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Ok, danke erst mal für die Info.

Thema: Click-Once Deplayment-Problem
Am im Forum: Rund um die Programmierung

Habe eine Appliaktion, mit mehreren Projekten, habe ich auch schon länger am laufen. Jetzt habe ich ein zusätzliches Projekt eingebunden, weil ich ein neues Feature eingebaut habe.
Dann habe ich die Applikation veröffentlicht, konnte diese aber nicht installieren, Deployment-Error.

Kann es sein, sobald man ein anderes Projekt hinzubindet oder nur eine Methode die eine andere EXE aufruft, das dann die Applikation sich nicht mehr automatisch mit einer neueren Version sich nicht mehr installiert?

Wenn das so wäre, muss mann ja jedes mal die Applikation auf den Rechnern deinstallieren und neu installieren, absolut unbrauchbar???
Hat jemand eine Idee, wie man so ein Prblem umschiffen kann?


Hier mal das LOG-File das beim Update erscheint ... :


IDENTITIES
Deployment Identity : Datenfinder.application, Version=1.0.26.0, Culture=neutral, PublicKeyToken=b6d294c9d8a2e221, processorArchitecture=amd64
Application Identity : Datenfinder.exe, Version=1.0.26.0, Culture=neutral, PublicKeyToken=b6d294c9d8a2e221, processorArchitecture=amd64, type=win32

APPLICATION SUMMARY
* Installable application.

ERROR SUMMARY
Below is a summary of the errors, details of these errors are listed later in the log.
* Activation of F:\APPS\Fertigung\DatenFinder\Datenfinder_x64\Datenfinder.application resulted in exception. Following failure messages were detected:
+ Reference in the manifest does not match the identity of the downloaded assembly MessprogrammFinder.exe.

COMPONENT STORE TRANSACTION FAILURE SUMMARY
No transaction error was detected.

WARNINGS
There were no warnings during this operation.

OPERATION PROGRESS STATUS

Fehler
* [25.04.2022 07:16:43] : Activation of F:\APPS\Fertigung\DatenFinder\Datenfinder_x64\Datenfinder.application has started.
* [25.04.2022 07:16:44] : Processing of deployment manifest has successfully completed.
* [25.04.2022 07:16:44] : Installation of the application has started.
* [25.04.2022 07:16:45] : Processing of application manifest has successfully completed.
* [25.04.2022 07:16:47] : Found compatible runtime version 4.0.30319.
* [25.04.2022 07:16:47] : Request of trust and detection of platform is complete.


ERROR DETAILS
Fehler
Following errors were detected during this operation.
* [25.04.2022 07:17:06] System.Deployment.Application.InvalidDeploymentException (RefDefValidation)
- Reference in the manifest does not match the identity of the downloaded assembly MessprogrammFinder.exe.
- Source: System.Deployment
- Stack trace:
at System.Deployment.Application.DownloadManager.ProcessDownloadedFile(Object sender, DownloadEventArgs e)
at System.Deployment.Application.FileDownloader.DownloadModifiedEventHandler.Invoke(Object sender, DownloadEventArgs e)
at System.Deployment.Application.FileDownloader.OnModified()
at System.Deployment.Application.SystemNetDownloader.DownloadSingleFile(DownloadQueueItem next)
at System.Deployment.Application.SystemNetDownloader.DownloadAllFiles()
at System.Deployment.Application.FileDownloader.Download(SubscriptionState subState, X509Certificate2 clientCertificate)
at System.Deployment.Application.DownloadManager.DownloadDependencies(SubscriptionState subState, AssemblyManifest deployManifest, AssemblyManifest appManifest, Uri sourceUriBase, String targetDirectory, String group, IDownloadNotification notification, DownloadOptions options)
at System.Deployment.Application.ApplicationActivator.DownloadApplication(SubscriptionState subState, ActivationDescription actDesc, Int64 transactionId, TempDirectory& downloadTemp)
at System.Deployment.Application.ApplicationActivator.InstallApplication(SubscriptionState& subState, ActivationDescription actDesc)
at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl, Uri& deploymentUri)
at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivationWithRetry(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl)
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivationWithRetry(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl)
at System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state)

COMPONENT STORE TRANSACTION DETAILS
No transaction information is available.

Thema: ClickOnce: MethodAccessException beim Start
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo Palladin, hast das Problem inzwischen behoben?
Was war denn die Ursache dafür?

Ich habe ein ähnliches Problem. Habe eine Appliaktion, mit mehreren Projekten, habe ich auch schon länger am laufen. Jetzt habe ich ein zusätzliches Projekt eingebunden, weil ich ein neues Feature eingebaut habe.
Dann habe ich die Applikation veröffentlicht, konnte diese aber nicht installieren, Deployment-Error.

Kann es sein, sobald man ein anderes Projekt hinzubindet oder nur eine Methode die eine andere EXE aufruft, das dann die Applikation sich nicht mehr automatisch mit einer neueren Version sich nicht mehr installiert?

Wenn das so wäre, muss mann ja jedes mal die Applikation auf den Rechnern deinstallieren und neu installieren, absolut unbrauchbar???
Hast du da eine Idee?

Thema: Bisherige Windowsapplikationen in Webservice oder Tablestumgebung laufen lassen
Am im Forum: Rund um die Programmierung

So, jetzt hab ich nochmal eine Frage. Ich nutze einen Webservice von einem Hersteller, mit dem lass ich mir Daten von dem Hersteller ausgeben, oder übergebe dem System Daten.
Wenn ich so was für meine eigene Appliaktion bauen will, dann muss ich einmal den bereich für den Server entwickeln, als auch Methodik für die Clients (das wären natürlcih unsere Rechner der Firma).
Ich denke so ein WebService ist bestimmt nicht gerade einfach zum entwickeln, oder? Legt man die Kommando- oder Befehlssyntax die z.B. der Client an den Server geben kann selber fest oder gibt es da feste Definitonen (als Beispiel: Client sagt ==> du Server, lösche Auftrags xy in Tabelle B) ?? Oder kann man diese Syntax selber festlegen?

Thema: Bisherige Windowsapplikationen in Webservice oder Tablestumgebung laufen lassen
Am im Forum: Rund um die Programmierung

Na ja, Bespiel SAP. Ich benutze etwas was mit an die hand gegeben wurde, um aus meiner Applikation Daten von dem besagten abzufufen. Da gibt es dann DLL's für Verbindung und Methodik.
Habe ich die wiederum nicht NET6-kompatibel, bin ich nass.

Thema: Bisherige Windowsapplikationen in Webservice oder Tablestumgebung laufen lassen
Am im Forum: Rund um die Programmierung

Tja, eine Sache gibt es bestimmt zu beachten, oder?
Wenn ich jetzt meine Appliaktionen / Projekte auf NET6 hebe, was mache ich dann mit DLL's die ich von Drittherstellern bisher benutze?
Die müssen dann auch dem NET6 genugtun (kompatibel sein). Da fängt dann bestimmt auch schon wieder ein Kampf an, oder ist das einfach zu lösen?

Thema: Bisherige Windowsapplikationen in Webservice oder Tablestumgebung laufen lassen
Am im Forum: Rund um die Programmierung

MAUI, habe ich schon mal gelesen, soll nun in VS2022 voll unterstützt werden.
Hast du damit schon was gemacht?

Thema: Bisherige Windowsapplikationen in Webservice oder Tablestumgebung laufen lassen
Am im Forum: Rund um die Programmierung

Hallo Forenmitglieder. Programmiere schon einige Jahre in C# (WPF). Nun ist es so, dass sich in unserer Firma ein immer gößerer Wandel vollzieht, sei es mit unseren Sytemen (ERP), Daten usw. die immer mehr in die Cloud gesetzt werden.
Nun soll ja auch der digitale Wandel bei uns in der Firma Einzug halten. Es soll auf Tablets gesetzt werden, Apple oder Android, Windows ...
Nun beschäftigt mich halt immer mehr die Frage, ob es auch eine andere Möglichkeit gibt, die bisherigen Applikationen zu verwenden oder leicht zu modifizieren, damit diese auf solchen Geräten laufen?
Es ist mir klar, das ich die Anwendungen auch komplett für Android oder Apple mit Xamarin umsetzen könnte, aber ich frage mich ob es noch eine andere Möglichkeit gibt?
Gibt es so etwas, das man diese Anwendungen irgendwo z.B. auf Azure laufen lässt, und man kann über die mobile Geräte sich da per Webverbindung aufschalten, somit braucht man das nicht auf den Geräten zu installieren? So etwas in die Richtung??
Das wäre vielleicht auch ein größerer Schutz vor Viren, Angriffe usw. ??

Hat jemand von euch damit Erfahrung, oder kann sagen was Sinn macht, was nicht?
Bin schon gespannt.

Thema: MS SQL Spaltenname mit case sensitivity
Am im Forum: Datentechnologien

Danke Abt für deinen Typ, das funktioniert (jedenfalls lokal, ob in der Firma auch muss ich noch checken).
Ist mir schon klar, mit Sonderzeichen usw. Aber das machen die auch nicht, weil denen ihr Programm eingentlich ein SQLITE-Datenfile ist, also haben die auch bestimmte Regeln.
Mir geht es darum, dass die Programme schnell und übersichtlich gefiltert, sortiert, verglichen werden können, deshalb diese Sache. Habe davor schon ohne diese Ooption die Programme verarbeitet, musste aber bei so einem Fall, wenn "Durchmesser-a" schon da war und dann noch "Durchmesser-A" in einem Programm vorhanden war, die Spalte mir einem Zähler versehen.
Aber so sollte das klappen.

Thema: MS SQL Spaltenname mit case sensitivity
Am im Forum: Datentechnologien

Danke Abt, dass du dir die Zeit nimmst und mir das anschaulich erklärst.
Du denkst jetzt da schon einen Schritt weiter, das da verschiedene Hersteller / Systeme von Maschinenherstellern angesprochen werden. Es geht hier bei mir aber nurm um einen Hersteller, da kommt sonst nichts rein, was sich vermischen kann. Es geht um einen schweizer Schleifmaschinenhersteller, der hat seine Schleifsoftware und von dieser lege ich nur Daten ab.
Ich weiss aber was du meinst, wenn verschiedene Hersteller hier in der DB drin wären , dann bräuchte ich eine Mappingtabelle, das die Parameter genau und eindeutig zu identifizieren sind. Ja, man könnte auch die Logik eventuelle für andere Systeme anpassen, ableiten (Vererben).

Also, bei den Daten die ich hier archiviere, ist der Parameter an allen Maschinen identisch.
Aber zu meiner Frage, kann man den Spaltennamen im Microsoft SQLserver nun so einstellen, das er "Durchmesser-A" und "Durchmesser-a" anlegen kann ??

Thema: MS SQL Spaltenname mit case sensitivity
Am im Forum: Datentechnologien

Hallo Abt, ja du weisst schon, es geht um Maschinenprogramme ;-).
Der Hersteller speichert dieses auch (in SQLITE, da geht es doch wohl auch...).
Ich muss die Programme über einen WebService ansprechen, kann die Daten dann abgreifen. Dann brösle ich das alles in seine Bestandteile auf und übertrage das in die Datenbank. Neue Tabellen, Spalten werden automatisch angelegt. Aber, wie ich dann trotzdem Spaltennamen die identische Zeichnen haben aber sich in Groß-Kleinschrift unterscheiden, verstehe ich nicht. Es ist wahrschleinlich deswegen, weil ich kein Informatikstudium gemacht habe.
Und ich dachte ich hatte auch mal etwas gelesen, das man diese Eigenheit beim SMS einstellen kann.
Also, wenn ich automtisch per Code eine neue Spalten anlegen lassen will, muss der SQL-Server / Datenbank unterscheiden zwischen "Durchmesser-A" und "Durchmesser-a".

Thema: MS SQL Spaltenname mit case sensitivity
Am im Forum: Datentechnologien

Hallo, danke für die Antwort.
Ich habe das gerade bei einer bestehenden lokalen Datenbank getestet. Habe die in den SingelUser geschaltet, und dann unter Options
die Collation in dem DropDown-Menu von Latin1_General_CI_AI auf Latin1_General_CS_AI gesetzt.

Davor hatte ich in einer Tabelle eine Spalte mit Durchmesser-a angelegt.
Nach der obigen Änderung habe ich nochmal versucht, in der Tabelle eine weitere Spalte mit Durchmesser-A anzulegen. Es kam dann die Fehlermeldung, das diese Spalte schon existiert.
Was ist falsch?

Thema: MS SQL Spaltenname mit case sensitivity
Am im Forum: Datentechnologien

Hallo liebe Community, stehe gerade vor folgendem Problem.
Ich muss Maschinendaten in eine SQL-Datenbank transferieren. Dabei ist mir aufgefallen, das der Hersteller manchmal Namen vergibt (Parameternamen welche dann als Spaltennamen benutzt werden) , die aus Buchstaben bestehen, aber einmal als "Durchmesser-a" und anderes mal als "Durchmesser-A" beschrieben werden. Beide Parameter haben eine andere Bedeutung, aber mit der aktuellen Einstellung kann ich die Spalte "Durchmesser-A" nicht anlegen, weil der SQL-Server motzt und sagt es gibt diese Spalte schon in der Tabelle "Durchmesser-a".
Deshalb meine frage, wo kann ich das einstellen. Habe schon im Netz dazu gesucht, aber ich finde nichts passendes.
Kann ich das überhaupt nachträglich ändern, oder muss das der komplette SQL-Server neu aufgesetzt werden?

Thema: Jegliche .NET DLL in dotnet core verwendbar?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Genau richtig, Maschinensteuerungen, die kauft man und da bleiben die stehen.
Aber: Du hast es korrekt gesagt. Wo es möglich ist, muss der "alte Scheiß raus".
Danke.

Thema: Jegliche .NET DLL in dotnet core verwendbar?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ok, dann muss ich ran.
Dann muss ich auch damit leben das diese Appliaktion nicht mehr auf alten WINXP (wir haben noch Maschinen mit XP) nicht mehr unterstützt werden, da wird es dann keinen Ausweg geben.

Thema: Jegliche .NET DLL in dotnet core verwendbar?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Das mit Lego und Duplo ist ein gutes Besipiel.

Was mache ich dann, wenn ich eine Applikation habe, die aus mehreren Projekten besteht, alles sind soweit noch mit FW4.0 erstellt. Man kann (können schon, aber die Zeit !) ja nicht alle Projekte umschreiben, auf .Net5/6 usw.
Mir ging es eigentlich darum, wenn ich neue Features programmiere, die bisher in der Anwendung noch nicht vorhanden waren, diese in .Net5/6 zu programmieren, aber rückwirkend in der Hauptapplikation aufgerufen / verwendet werden kann.
Welche Möglichkeiten hat man? Gibt es da keine Brücke, das neue im vorhadnenen (alten) zu verwenden?

Mit verwenden meine ich als Besipiel:
- Es wird eine neue Anforderung gebraucht, die es bisher noch nicht gab. Die Anforderung (eine Datenauswertung) wird in einem neuen Projekt (damit zukunfsfähing in .Net5) erstellt.

==> kann ich dieses Projekt irgendwie in meinem alten "Hauptprojekt" einbinden, damit ich es dort aufrufen kann und die Verarbeitung dort ausgeführt wird?

Thema: Jegliche .NET DLL in dotnet core verwendbar?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Danke, mal sehen was ich bei mir umstellen kann. Hatte hier shcon mal was hilfreiches gefunden ...

https://www.youtube.com/watch?v=qc2WFaMfdp8

Thema: Jegliche .NET DLL in dotnet core verwendbar?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo, bei mir wäre noch eine andere Frage.
Seit Jahren erstelle ich WPF-Anwendungen mit .Net, vorzugsweise noch mit FW4.0.
Habe jetzt auch schon mal Anwendungen in NetCore geschrieben, um zu testen.
Kann ich aber rückwirkend eine NetCore-DLL mit neuer Anwendungsfunktionalität auch in ein .Net-Projekt einbinden (DLL) um dann die Methoden anzusprechen?
Habe das mal probiert, das einbinden geht, Klasse instanziieren auch, aber wenn ich die Applikation starte kommt die Meldung kommenzig Fehlermeldungen und in derFehlerausgabe heißt es der Namespace der NetCore-DLL kann nicht gefunden werden.

Heißt das das es für die Einbindung noch ein Trick gibt?

Thema: In Applikation alternativ 32-bit oder 64-bit DLL verwenden
Am im Forum: Rund um die Programmierung

Hallo, habe das nun soweit hingekriegt, vielen Dank an EUCH !!!
Es war noch ein Problem mit einem weiteren Projekt, das ich in der Solution eingebunden habe. Das Projekt ist in VisualBasic programmiert, das habe ich so gemacht, da ich die DLL' s der externen Firma nicht in C# einbinden konnte. Dazu sind die DLL's einmal mit 32 - und 64-Bit ausgezeichnet. Also hatte ich das alles in VB gemacht, mit den Funktionen die ich brauche und habe dann die erstellte DLL somit in meiner Hauptapplikatin verwendet. Das Problem war jetzt, das ich die 64-Bit-Version nun auch noch erstellen mußte, dazu waren Anpassungen notwendig, egal, habe ich gemacht und dann hatte ich eine DLL für 32- und 64-Bit, die ich nun verwende.
Meine Frage: Zuvor hatte ich in der Hauptapplikation dieses VisualBasic-Applikation als "Projekt" eingebunden.
Gibt eigentlich eine Möglichkeit, das man immer noch das Projekt einbindet, und beim Erstellen werden in der VisualBasicapplikation auch die korrekt bittigen DLL's gezogen?

Das Hauptproblem das ich noch habe ist aber Excel. Ich lese in einem Projekt auch Exceldateien ein ("XLS"-Format, nicht "XLSX"). Da benutze ich die "Interop"-DLL und dazu noch die "Microsoft.Jet.OLEDB.4.0". Da motzt das System bei x64.
Wie kann ich das machen, das es auf x86 und x64 läuft? Das Excelgedöns mit "NPOI" erschlagen ?? Oder gibt es da auch etwas für MSBuild mit "Referenz" ? Das was ich im Nezt gesehen habe, war mit Registrierungen über regsvr32 dieverser DLL's, aber ich kann nicht an zig Rechnern durchgehen und das Zeugs registrieren, das muss pragmatischer laufen.
Hat jemand eine Idee?

Thema: In Applikation alternativ 32-bit oder 64-bit DLL verwenden
Am im Forum: Rund um die Programmierung

Habe das mal probiert, aber ich denke ich bin zu doof dafür, aber es war dann doch noch ein Erfolg zu verzeichnen.

Habe eine Konsolenanwerndung in mit FW4.0 als WPF erstellt.
Habe im Projektverzeichnis zwei Ordner (x86 und x64) angelegt, habe jeweils die beiden DLL's da abgelegt.
Die Projektkonfiguratin hat nur x86 und x64.

Habe die Applikation erstellen lassen, ohne eine Zeile Code eingefügt zu haben.

Was zeigt mir die CSPROJ ? Es ist plötzlich was mit AMD64 drin, hui:


<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProjectGuid>{539E4982-E159-4FDD-99AB-E1666BC0B1CE}</ProjectGuid>
    <OutputType>Exe</OutputType>
    <RootNamespace>ConsoleAppDlltest</RootNamespace>
    <AssemblyName>ConsoleAppDlltest</AssemblyName>
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
    <Deterministic>true</Deterministic>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
    <PlatformTarget>x64</PlatformTarget>
    <OutputPath>bin\x64\Debug\</OutputPath>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
    <PlatformTarget>x64</PlatformTarget>
    <OutputPath>bin\x64\Release\</OutputPath>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
    <PlatformTarget>x86</PlatformTarget>
    <OutputPath>bin\x86\Debug\</OutputPath>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
    <PlatformTarget>x86</PlatformTarget>
    <OutputPath>bin\x86\Release\</OutputPath>
  </PropertyGroup>
  
  <ItemGroup>
    <Reference Include="sapnco, Version=3.0.0.42, Culture=neutral, PublicKeyToken=50436dca5c7f7d23, processorArchitecture=AMD64">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>..\..\..\DLLS\SapZeichnungen\x64\sapnco.dll</HintPath>
    </Reference>
    <Reference Include="sapnco_utils, Version=3.0.0.42, Culture=neutral, PublicKeyToken=50436dca5c7f7d23, processorArchitecture=AMD64">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>..\..\..\DLLS\SapZeichnungen\x64\sapnco_utils.dll</HintPath>
    </Reference>
    <Reference Include="System" />
    <Reference Include="System.Core" />
    <Reference Include="System.Xml.Linq" />
    <Reference Include="System.Data.DataSetExtensions" />
    <Reference Include="Microsoft.CSharp" />
    <Reference Include="System.Data" />
    <Reference Include="System.Xml" />
  </ItemGroup>
  
  
  <ItemGroup>
    <Compile Include="Program.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
  </ItemGroup>
  <ItemGroup>
    <Content Include="x64\sapnco.dll">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Content>
    <Content Include="x64\sapnco_utils.dll">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Content>
    <Content Include="x86\sapnco.dll">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Content>
    <Content Include="x86\sapnco_utils.dll">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Content>
  </ItemGroup>
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>


Zuerst hatte ich gedacht es geht immer noch nicht, habe es dann aber nochmal probiert, und die beiden <Reference> mtit "AMD64" in die CSPROJ vom anderen Projekt eingbaut, dann nochmal eingebaut für "x86", siehe:


  <ItemGroup Condition="'$(Platform)' == 'x64' ">
    <Reference Include="sapnco, Version=3.0.0.42, Culture=neutral, PublicKeyToken=50436dca5c7f7d23, processorArchitecture=AMD64">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>..\..\..\DLLS\SapZeichnungen\x64\sapnco.dll</HintPath>
    </Reference>
    <Reference Include="sapnco_utils, Version=3.0.0.42, Culture=neutral, PublicKeyToken=50436dca5c7f7d23, processorArchitecture=AMD64">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>..\..\..\DLLS\SapZeichnungen\x64\sapnco_utils.dll</HintPath>
    </Reference>
  </ItemGroup>
  <ItemGroup Condition=" '$(Platform)' == 'x86' ">
    <Reference Include="sapnco, Version=3.0.0.42, Culture=neutral, PublicKeyToken=50436dca5c7f7d23, processorArchitecture=x86">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>..\..\..\DLLS\SapZeichnungen\x86\sapnco.dll</HintPath>
    </Reference>
    <Reference Include="sapnco_utils, Version=3.0.0.42, Culture=neutral, PublicKeyToken=50436dca5c7f7d23, processorArchitecture=x86">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>..\..\..\DLLS\SapZeichnungen\x86\sapnco_utils.dll</HintPath>
    </Reference>
  </ItemGroup>

Dann hat es auch nun funktioniert. Was ich noch teste ich, wenn die DLL's nur verlinkt sind.
Was komisch ist:
-Warum steht jetzt bei Prozessorarchitektur plötzlich AMD64 ??

Ich werde da noch etwas sran herumspielen, mit Einbindung weiterer Projekte in die Projektmappe.

Eine , zwei weitere Fragen die mich jetzt gerade noch nachdenklich machen: Was passiert, wenn ich ein anderes Projekt oder eine andere Projekt-DLL in dieses Projekt aufnehme, das komplett in C# und nur mit Net-DLL's arbeitet (also keine Net. C++-Dll's)? Muss ich diese Projekt aomit auch mit x86 und x64 - Konfiguration ausstatten, damit alles funktioniert?

Wenn ich umgekehrt jetzt diese DLL mit den Net. C++-Dll's in einem anderen Projekt verwenden, muss ich das andere Projekt auch für x86 und x64 konfigurieren.
Das bedeutet, kein ANYCPU in projekten verwenden, sobald wie hier Net. C++-Dll's mit 64Bit verwendet werden, ist das korrekt?

Thema: In Applikation alternativ 32-bit oder 64-bit DLL verwenden
Am im Forum: Rund um die Programmierung

Hallo. Ja, das ganze hat sich echt verwurschtelt.
Bis jetzt konnte das erst mal so laufen. Aber nach und nach leuchten so die die Dinge auf, hatte damit auch vorher noch keine Berührung.
Und das mit den Net. C++ DLL's das diese anders zu behandeln sind, ja, muss man wissen. Aber dann geht es erst mal immer noch nicht (bei mir, aber denke das liegt an mir).
Ich würde das ganze schon gerne richtig verstehen, ich denke ich bin da auch schon näher dran.

Punkt 1:
- Die DLL's (in meinem Fall Net. C++-Dll's ins Projekt in differenzierte Ordner ablegen. Mit Differennziert meine ich, im Projektmappenexplorer zwei Verzeichnisse anlegen, klassischerweise mit x86 und x64 (hat den Vorteil das man später mit den Conditions vonMSBuild zu arbeiten). Die DLL's darin ablegen (in der Regel haben die auch den identischen Namen)

Punkt 2:
- Handelt es sich wie in meinem Fall um die Net. C++ - DLL / DLL's, dann muss das Projekt in der Konfiguration für x86 und x64 ausgerichtet werden (einstellen), indiesem Fall auch "AnyCPU" entfernen

Punkt 3:
- Es muss die CSPROJ-Datei vom Projekt (Hauptprojekt) angepasst werden, mit den MSBUILD-Conditions. Ich denke hier liegt jetzt das Problem, ich schreibe auch hier erst mal nicht mehr dazu, bevor das Problem gelöst ist. Wenn das bei mir funktioniert, werde ich den Prozess mal genau beschreiben, falls auch noch andere so dappig wie ich sind


Habe das mal bis Punkt 3 beschrieben. In der CSPROJ die ich editiert habe, kann ich mir nicht erklären was genau falsch laufen soll. Ich habe zusätzlich zwei <ItemGroup> angelegt, in denen ich die Plattformeinstellung kontrolliere, dementsprechen sollen die DLL's gezogen werden.

Wenn ich aber das Projekt starte, in der VStudiooberfäche x86 oder x64 einstellen, dann bringt die Umgebung viele Fehler "Typ ooder Namespace "SAP" wurde nicht gefunden, und in der Datei sind sämtliche Klassen, Eigenschaften rot unterkringelt, und in der Fehlerliste wird ausgegeben das eine using-Direktive oder der Assemblyverweis fehlt.

Was mir noch aufgefallen ist:
- Warum steht in der CSPROJ ganz oben noch ein Eintrag mit "AnyCPU", die habe ich entfernt, das kann nur noch bei der "Zielplattform" in Projekt-Eigenschaften-Build eingestellt werden.
- In den beiden <ItemGroup> habe ich keine Condition für DEBUG oder RELEASE, habe es aber mit und ohne die Zusätzliche Condition geändert, macht keinen Unterschied.

So, jetzt habe ich eine Menge geschrieben, evenntuell kann das Problem analysiert werden ...

Also ich sehe jetzt den Fehler vorerst nicht, was ich falsch gesetzt habe. Ich stelle hier nochmal die CSPROJ ein:


<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProjectGuid>{8CBB9BA6-BCF3-476A-BDBA-005913EA9A0E}</ProjectGuid>
    <OutputType>WinExe</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>SapZeichnungsViewer</RootNamespace>
    <AssemblyName>SapZeichnungsViewer</AssemblyName>
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
    <Deterministic>true</Deterministic>
    <TargetFrameworkProfile>
    </TargetFrameworkProfile>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
    <DebugSymbols>true</DebugSymbols>
    <OutputPath>bin\x86\Debug\</OutputPath>
    <DefineConstants>
    </DefineConstants>
    <DebugType>full</DebugType>
    <PlatformTarget>x86</PlatformTarget>
    <LangVersion>7.3</LangVersion>
    <ErrorReport>prompt</ErrorReport>
    <NoWarn>0168</NoWarn>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
    <OutputPath>bin\x86\Release\</OutputPath>
    <DefineConstants>
    </DefineConstants>
    <Optimize>false</Optimize>
    <DebugType>pdbonly</DebugType>
    <PlatformTarget>x86</PlatformTarget>
    <LangVersion>7.3</LangVersion>
    <ErrorReport>prompt</ErrorReport>
  </PropertyGroup>
  <PropertyGroup>
    <StartupObject>
    </StartupObject>
  </PropertyGroup>
  <PropertyGroup />
  <PropertyGroup>
    <SignAssembly>false</SignAssembly>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
    <PlatformTarget>x86</PlatformTarget>
    <OutputPath>bin\x64\Debug\</OutputPath>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
    <PlatformTarget>x64</PlatformTarget>
    <OutputPath>bin\x64\Release\</OutputPath>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="PresentationCore" />
    <Reference Include="PresentationFramework" />
    <Reference Include="System" />
    <Reference Include="System.Configuration" />
    <Reference Include="System.Core" />
    <Reference Include="System.Web.Extensions" />
    <Reference Include="System.Xaml" />
    <Reference Include="System.Xml.Linq" />
    <Reference Include="System.Data.DataSetExtensions" />
    <Reference Include="Microsoft.CSharp" />
    <Reference Include="System.Data" />
    <Reference Include="System.Xml" />
    <Reference Include="WindowsBase" />
  </ItemGroup>
  <ItemGroup>
    <Compile Include="MainWindow.xaml.cs">
      <DependentUpon>MainWindow.xaml</DependentUpon>
    </Compile>
    <Compile Include="Properties\AssemblyInfo.cs" />
    <Compile Include="Zusatzklassen\ECCDestinationConfig.cs" />
    <Compile Include="Zusatzklassen\SAPFunctions.cs" />
    <Compile Include="SapViewerMethods.cs" />
    <Compile Include="Zusatzklassen\Tools.cs" />
    <Compile Include="Zusatzklassen\ViewFiles.cs" />
  </ItemGroup>
  <ItemGroup>
    <PackageReference Include="PDFsharp-MigraDoc-GDI">
      <Version>1.51.5186-beta</Version>
    </PackageReference>
    <PackageReference Include="System.ValueTuple">
      <Version>4.5.0</Version>
    </PackageReference>
  </ItemGroup>
  
  <!-- Start - eingefügte ItemGroups -->
  
  <ItemGroup Condition="'$(Platform)' == 'x64'">
    <Content Include="Zusatzklassen\x64\sapnco.dll">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Content>
    <Content Include="Zusatzklassen\x64\sapnco_utils.dll">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Content>
  </ItemGroup>
  <ItemGroup Condition=" '$(Platform)' == 'x86'">
    <Content Include="Zusatzklassen\x86\sapnco.dll">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Content>
    <Content Include="Zusatzklassen\x86\sapnco_utils.dll">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Content>
  </ItemGroup>
  <ItemGroup>
    <Content Include="App.config">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
  </ItemGroup>
  
  <!-- Ende - eingefügte ItemGroups -->
  
  <!-- <ItemGroup> -->
  <!-- <Content Include="App.config"> -->
  <!-- <CopyToOutputDirectory>Always</CopyToOutputDirectory> -->
  <!-- </Content> -->
  <!-- <Content Include="Zusatzklassen\x64\sapnco.dll"> -->
  <!-- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> -->
  <!-- </Content> -->
  <!-- <Content Include="Zusatzklassen\x64\sapnco_utils.dll"> -->
  <!-- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> -->
  <!-- </Content> -->
  <!-- <Content Include="Zusatzklassen\x86\sapnco.dll"> -->
  <!-- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> -->
  <!-- </Content> -->
  <!-- <Content Include="Zusatzklassen\x86\sapnco_utils.dll"> -->
  <!-- <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> -->
  <!-- </Content> -->
  <!-- </ItemGroup> -->
  
  
  <ItemGroup>
    <Page Include="MainWindow.xaml">
      <SubType>Designer</SubType>
      <Generator>MSBuild:Compile</Generator>
    </Page>
  </ItemGroup>
  <ItemGroup>
    <None Include="Doc-SapZeichnungsViewer.docx" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\AdditionalFuncs\AdditionalFuncs.csproj">
      <Project>{86b31f9e-ef5b-46b0-8559-b4a5043dffd3}</Project>
      <Name>AdditionalFuncs</Name>
    </ProjectReference>
  </ItemGroup>
  <ItemGroup />
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

Thema: In Applikation alternativ 32-bit oder 64-bit DLL verwenden
Am im Forum: Rund um die Programmierung

Also, ohne groß auszuholen.
Ich habe versucht das in der CSPROJ einzubinden, das bei unterschiedlicher Prozessorarchitektur (x86/x64).

Schritt 1:
Habe dem Projekt bei den Verweisen die beiden DLL's als x64 eingebunden.
Dann habe das Projekt gestartet, einmal als "AnyCPU" und einmal als "x64" laufen lassen.
Beides mal hat es funktioniert.

Habe ich "x86" angewählt,dann ging es nicht.

Aktueller Aufbau der "CSPROJ":


<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProjectGuid>{8CBB9BA6-BCF3-476A-BDBA-005913EA9A0E}</ProjectGuid>
    <OutputType>WinExe</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>SapZeichnungsViewer</RootNamespace>
    <AssemblyName>SapZeichnungsViewer</AssemblyName>
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
    <Deterministic>true</Deterministic>
    <TargetFrameworkProfile>
    </TargetFrameworkProfile>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
    <DebugSymbols>true</DebugSymbols>
    <OutputPath>bin\x86\Debug\</OutputPath>
    <DefineConstants>
    </DefineConstants>
    <DebugType>full</DebugType>
    <PlatformTarget>x86</PlatformTarget>
    <LangVersion>7.3</LangVersion>
    <ErrorReport>prompt</ErrorReport>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
    <OutputPath>bin\x86\Release\</OutputPath>
    <DefineConstants>
    </DefineConstants>
    <Optimize>false</Optimize>
    <DebugType>pdbonly</DebugType>
    <PlatformTarget>x86</PlatformTarget>
    <LangVersion>7.3</LangVersion>
    <ErrorReport>prompt</ErrorReport>
  </PropertyGroup>
  <PropertyGroup>
    <StartupObject>SapZeichnungsViewer.App</StartupObject>
  </PropertyGroup>
  <PropertyGroup />
  <PropertyGroup>
    <SignAssembly>false</SignAssembly>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
    <DebugSymbols>true</DebugSymbols>
    <OutputPath>bin\AnyCPU\Debug\</OutputPath>
    <DebugType>full</DebugType>
    <PlatformTarget>AnyCPU</PlatformTarget>
    <LangVersion>7.3</LangVersion>
    <ErrorReport>prompt</ErrorReport>
    <NoWarn>0168</NoWarn>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
    <OutputPath>bin\AnyCPU\Release\</OutputPath>
    <DebugType>pdbonly</DebugType>
    <PlatformTarget>AnyCPU</PlatformTarget>
    <LangVersion>7.3</LangVersion>
    <ErrorReport>prompt</ErrorReport>
  </PropertyGroup>
  <PropertyGroup>
    <NoWin32Manifest>true</NoWin32Manifest>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="PresentationCore" />
    <Reference Include="PresentationFramework" />
    <Reference Include="sapnco">
      <HintPath>..\..\..\DLLS\SapZeichnungen\x64\sapnco.dll</HintPath>
    </Reference>
    <Reference Include="sapnco_utils">
      <HintPath>..\..\..\DLLS\SapZeichnungen\x64\sapnco_utils.dll</HintPath>
    </Reference>
    <Reference Include="System" />
    <Reference Include="System.Configuration" />
    <Reference Include="System.Core" />
    <Reference Include="System.Web.Extensions" />
    <Reference Include="System.Xaml" />
    <Reference Include="System.Xml.Linq" />
    <Reference Include="System.Data.DataSetExtensions" />
    <Reference Include="Microsoft.CSharp" />
    <Reference Include="System.Data" />
    <Reference Include="System.Xml" />
    <Reference Include="WindowsBase" />
  </ItemGroup>
  <ItemGroup>
    <Compile Include="App.xaml.cs">
      <DependentUpon>App.xaml</DependentUpon>
    </Compile>
    <Compile Include="MainWindow.xaml.cs">
      <DependentUpon>MainWindow.xaml</DependentUpon>
    </Compile>
    <Compile Include="Properties\AssemblyInfo.cs" />
    <Compile Include="Zusatzklassen\ECCDestinationConfig.cs" />
    <Compile Include="Zusatzklassen\SAPFunctions.cs" />
    <Compile Include="SapViewerMethods.cs" />
    <Compile Include="Zusatzklassen\Tools.cs" />
    <Compile Include="Zusatzklassen\ViewFiles.cs" />
  </ItemGroup>
  <ItemGroup>
    <PackageReference Include="PDFsharp-MigraDoc-GDI">
      <Version>1.51.5186-beta</Version>
    </PackageReference>
    <PackageReference Include="System.ValueTuple">
      <Version>4.5.0</Version>
    </PackageReference>
  </ItemGroup>
  <ItemGroup>
    <Content Include="App.config">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
  </ItemGroup>
  <ItemGroup>
    <ApplicationDefinition Include="App.xaml">
      <Generator>MSBuild:Compile</Generator>
      <SubType>Designer</SubType>
    </ApplicationDefinition>
    <Page Include="MainWindow.xaml">
      <SubType>Designer</SubType>
      <Generator>MSBuild:Compile</Generator>
    </Page>
  </ItemGroup>
  <ItemGroup>
    <None Include="Doc-SapZeichnungsViewer.docx" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\AdditionalFuncs\AdditionalFuncs.csproj">
      <Project>{86b31f9e-ef5b-46b0-8559-b4a5043dffd3}</Project>
      <Name>AdditionalFuncs</Name>
    </ProjectReference>
  </ItemGroup>
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

Schritt 2:
Ich habe die "CSPROJ" abgeändert, damit auch die "32-Bit"-Variante passen soll. Aber macht eigentlich keinen Sinn wenn das "managed" ist.
Bei den Verweisen habe ich nichts verändert.
"x64 / AnyCPU" läuft, aber "x86" nicht, Fehlermeldung liegt bei.

Hier die abgeänderte CSPROJ-Datei (neuer Teil ist gekennzeichnet):

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProjectGuid>{8CBB9BA6-BCF3-476A-BDBA-005913EA9A0E}</ProjectGuid>
    <OutputType>WinExe</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>SapZeichnungsViewer</RootNamespace>
    <AssemblyName>SapZeichnungsViewer</AssemblyName>
    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
    <Deterministic>true</Deterministic>
    <TargetFrameworkProfile>
    </TargetFrameworkProfile>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
    <DebugSymbols>true</DebugSymbols>
    <OutputPath>bin\x86\Debug\</OutputPath>
    <DefineConstants>
    </DefineConstants>
    <DebugType>full</DebugType>
    <PlatformTarget>x86</PlatformTarget>
    <LangVersion>7.3</LangVersion>
    <ErrorReport>prompt</ErrorReport>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
    <OutputPath>bin\x86\Release\</OutputPath>
    <DefineConstants>
    </DefineConstants>
    <Optimize>false</Optimize>
    <DebugType>pdbonly</DebugType>
    <PlatformTarget>x86</PlatformTarget>
    <LangVersion>7.3</LangVersion>
    <ErrorReport>prompt</ErrorReport>
  </PropertyGroup>
  <PropertyGroup>
    <StartupObject>SapZeichnungsViewer.App</StartupObject>
  </PropertyGroup>
  <PropertyGroup />
  <PropertyGroup>
    <SignAssembly>false</SignAssembly>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
    <DebugSymbols>true</DebugSymbols>
    <OutputPath>bin\AnyCPU\Debug\</OutputPath>
    <DebugType>full</DebugType>
    <PlatformTarget>AnyCPU</PlatformTarget>
    <LangVersion>7.3</LangVersion>
    <ErrorReport>prompt</ErrorReport>
    <NoWarn>0168</NoWarn>
  </PropertyGroup>
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
    <OutputPath>bin\AnyCPU\Release\</OutputPath>
    <DebugType>pdbonly</DebugType>
    <PlatformTarget>AnyCPU</PlatformTarget>
    <LangVersion>7.3</LangVersion>
    <ErrorReport>prompt</ErrorReport>
  </PropertyGroup>
  <PropertyGroup>
    <NoWin32Manifest>true</NoWin32Manifest>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="PresentationCore" />
    <Reference Include="PresentationFramework" />
    <Reference Include="sapnco">
      <HintPath>..\..\..\DLLS\SapZeichnungen\x64\sapnco.dll</HintPath>
    </Reference>
    <Reference Include="sapnco_utils">
      <HintPath>..\..\..\DLLS\SapZeichnungen\x64\sapnco_utils.dll</HintPath>
    </Reference>
	
	<!-- START - Neu eingstellt -->
	
	<Reference Include="sapnco, version=3.0.0.42, culture=neutral, publickeytoken=50436dca5c7f7d23, processorarchitecture=x64">
      <HintPath>..\..\..\DLLS\SapZeichnungen\x64\sapnco.dll</HintPath>
    </Reference>
    <Reference Include="sapnco_utils, version=3.0.0.42, culture=neutral, publickeytoken=50436dca5c7f7d23, processorarchitecture=x64">
      <HintPath>..\..\..\DLLS\SapZeichnungen\x64\sapnco_utils.dll</HintPath>
    </Reference>
	
	<!-- ENDE - Neu eingstellt -->
	
	<Reference Include="sapnco">
      <HintPath>..\..\..\DLLS\SapZeichnungen\x64\sapnco.dll</HintPath>
    </Reference>
    <Reference Include="sapnco_utils">
      <HintPath>..\..\..\DLLS\SapZeichnungen\x64\sapnco_utils.dll</HintPath>
    </Reference>
	
	
    <Reference Include="System" />
    <Reference Include="System.Configuration" />
    <Reference Include="System.Core" />
    <Reference Include="System.Web.Extensions" />
    <Reference Include="System.Xaml" />
    <Reference Include="System.Xml.Linq" />
    <Reference Include="System.Data.DataSetExtensions" />
    <Reference Include="Microsoft.CSharp" />
    <Reference Include="System.Data" />
    <Reference Include="System.Xml" />
    <Reference Include="WindowsBase" />
  </ItemGroup>
  <ItemGroup>
    <Compile Include="App.xaml.cs">
      <DependentUpon>App.xaml</DependentUpon>
    </Compile>
    <Compile Include="MainWindow.xaml.cs">
      <DependentUpon>MainWindow.xaml</DependentUpon>
    </Compile>
    <Compile Include="Properties\AssemblyInfo.cs" />
    <Compile Include="Zusatzklassen\ECCDestinationConfig.cs" />
    <Compile Include="Zusatzklassen\SAPFunctions.cs" />
    <Compile Include="SapViewerMethods.cs" />
    <Compile Include="Zusatzklassen\Tools.cs" />
    <Compile Include="Zusatzklassen\ViewFiles.cs" />
  </ItemGroup>
  <ItemGroup>
    <PackageReference Include="PDFsharp-MigraDoc-GDI">
      <Version>1.51.5186-beta</Version>
    </PackageReference>
    <PackageReference Include="System.ValueTuple">
      <Version>4.5.0</Version>
    </PackageReference>
  </ItemGroup>
  <ItemGroup>
    <Content Include="App.config">
      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
    </Content>
  </ItemGroup>
  <ItemGroup>
    <ApplicationDefinition Include="App.xaml">
      <Generator>MSBuild:Compile</Generator>
      <SubType>Designer</SubType>
    </ApplicationDefinition>
    <Page Include="MainWindow.xaml">
      <SubType>Designer</SubType>
      <Generator>MSBuild:Compile</Generator>
    </Page>
  </ItemGroup>
  <ItemGroup>
    <None Include="Doc-SapZeichnungsViewer.docx" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\AdditionalFuncs\AdditionalFuncs.csproj">
      <Project>{86b31f9e-ef5b-46b0-8559-b4a5043dffd3}</Project>
      <Name>AdditionalFuncs</Name>
    </ProjectReference>
  </ItemGroup>
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

Hilft das weiter?
Kann das Problem sein:
- Muss ich was in der PropertyGroup machen, anstatt in der ItemGroup ??
- Muss ich bei den Verweisen was anders machen ??
- Muss ich eigentlich nur "AnyCPU" verwenden, oder geht das nicht weil die beiden DLL's eventuell C++-DLL's sind ??

Kann ich sonst noch eine Info geben??

Thema: In Applikation alternativ 32-bit oder 64-bit DLL verwenden
Am im Forum: Rund um die Programmierung

Hallo gfoidl, habe mir das geerade runtergeladen und angesehen.
Die beiden DLL's sind ja managed, aber wie du sagst wohl in C++. Das heißt ic nehme die "NetFull"-Variante (hbe FW 4.0 in Verwendung), oder egal, das unterstützt noch alle Frameworks, korrekt?
Ich binde die beiden DLL's ein und mache in der App.xamls.cs die Auswertung auf 32- oder 64-Bit, dazu wir dann die statische Klasse "NativLib" aufgerufen.
In der Klasse definiere ich die DLL doer mehrere DLL's mit der/den Variablennamen denen ich DLL-Namen zuweise.

Wenn ich mehrere DLL's habe, muss ich noch jede DLL anlegen oder wie nennt man das:
==> [DllImport(LibName, EntryPoint = "getBitnessMessage")]

Korrekt?

Ansonsten muss ich im Code nichts machen, alles bleibt wie es war?

Thema: In Applikation alternativ 32-bit oder 64-bit DLL verwenden
Am im Forum: Rund um die Programmierung

Hui, das hört sich ja fast noch komplizierter an als das in der CSPROJ-Datei einzutüteln ...
Ist das wirklich einfacher? das habe ich so noch nie gemacht (P/Invoke).
Bleibt im Code auch alles gleich bei beiden Vesionen (x86 oder x64, aber du sagtest ja "AnyCPU" verwenden). Wie rufe ich dann von den DLL's die Methoden auf?
Und wie mache ich das, wenn das Projekt mit ClickOnce veröffentlicht wird. Muss ich dann alle DLL's mit den diversen Bittigkeiten in das Projekt verlinken oder zufügen ?

Dann noch eine Frage. Habe ein Bild von einem der beien DLL-typen gemacht (x86/x64). Wenn ich das richtig verstehe, dann ist das managed DLL, korrekt?
Das heißt dann, das müßte ohen das ganze von oben beschrieben funktionieren?

Thema: In Applikation alternativ 32-bit oder 64-bit DLL verwenden
Am im Forum: Rund um die Programmierung

Hallo gfoidl, genau um das geht es.
Wie mache ich das Projekt auf x86 und x64 lauffähig, wenn es die einzubindenden DLL's als 32- und 64-Bit gibt. Applikation soll auf 32- und 64Bit Betriebsystem laufen, ohne zwei Projekt fahren zu müssen.
Danke.

Thema: ClickOnce Public key token einer installierten Anwendung erfragen
Am im Forum: Rund um die Programmierung

Hallo, hat damit noch keiner Erfahrung gemacht wie man von einer installierten Applikation nachträglich den "PublicKeyToken" bekommen kann?
Das Problem ist, das an manchen rechnern noch eine ältere Version (2 Versionen davor) installiert ist, und ich diese gerne entfernen lassen würde (wenn es klappen würde automatisch).
Aber dazu brauche ich noch diesen Token, und ich denke der ändert sich mit jeder neuen Version. Oder bleibt der immer gleich?

Thema: In Applikation alternativ 32-bit oder 64-bit DLL verwenden
Am im Forum: Rund um die Programmierung

Hallo Abt. Habe mir gestern für das Problem beinahe den ganzen Tag Zeit genommen und mal nachrecherchiert.
Also, ich finde das passende zu finden ist erst mal nicht so einfach, da meistens auch die beschriebenen Dinge englisch verfasst sind. Zudem binich auch nicht der abdolute Informatiker, und bei MS findet man zu diesem Problem auch nicht gerade so viele Beschreibungen.
Also, ich habe mich dann ma an folgenden Link gehalten:
conditionally-use-32-64-bit-reference-when-building-in-visual-studio
Dann habe ich von der Applikation die aus mehreren Projekten besteht, erst mal eines genommen, wo es die DLL's für 32-Bit und 64-Bit gibt. Dieses Projekt handelt die SAP-Anbindung für Zeichnungsbetrachtung ab, die ich für 32-Bit Systeme (WINXP die haben wir noch) und auch 64-Bit Syteme benötige. Der Code der Appliaktion bleibt ja für beide Zustände gleich (ob 32 - oder 64-Bit).
Dann habe ich die beiden DLL's mal versucht einzubinden. Die 64-Bit-Varinate schien zu laufen, aber als ich auf die 32-Bit-Variante zurückgeschalten hab, funktionierte die nicht.
Eingebunden habe ich die folgendermaßen:


<ItemGroup>
    <Reference Include="PresentationCore" />
    <Reference Include="PresentationFramework" />
    <Reference Include="sapnco, Version=3.0.0.42, Culture=neutral, PublicKeyToken=50436dca5c7f7d23, processorArchitecture=x64">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>..\..\..\DLLS\SapZeichnungen\x64\sapnco.dll</HintPath>
      <Private>True</Private>
    </Reference>
	   <Reference Include="sapnco, Version=3.0.0.42, Culture=neutral, PublicKeyToken=50436dca5c7f7d23, processorArchitecture=x86">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>..\..\..\DLLS\SapZeichnungen\x86\sapnco.dll</HintPath>
      <Private>True</Private>
    </Reference>
    <Reference Include="sapnco_utils, Version=3.0.0.42, Culture=neutral, PublicKeyToken=50436dca5c7f7d23, processorArchitecture=x64">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>..\..\..\DLLS\SapZeichnungen\x64\sapnco_utils.dll</HintPath>
      <Private>True</Private>
    </Reference>
	 <Reference Include="sapnco_utils, Version=3.0.0.42, Culture=neutral, PublicKeyToken=50436dca5c7f7d23, processorArchitecture=x86">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>..\..\..\DLLS\SapZeichnungen\x86\sapnco_utils.dll</HintPath>
      <Private>True</Private>
    </Reference>

Kann es sein, das hier die "processorArchitecture=x64" falsch ist, und MSIL stehen sollte?

Zudem finde ich verwirrend, wie die genaue Einstellung gemachtr wird, das einmal die "32-Bit" oder "64-Bit" - Erstellung angestoßen wird.
Habe mal noch ein Bild dazugehängt.

Thema: In Applikation alternativ 32-bit oder 64-bit DLL verwenden
Am im Forum: Rund um die Programmierung

Hallo Abt.
Gibt es eventuell eine Möglichkeit, das gesamte Projekt aus einem Guss zu machen, aber einfach die DLL's dann über die Einstellung von Platform zu steuern? Gibt es da die Möglichkeit, in der *.csprj über die Platform die betreffende DLL zu verwenden?
Falls das möglcih wäre, funktioniert aber die Installation mit ClickOnce auch noch?

Hintergrund der Frage. Ich hätte somit den geringeren Aufwand und muss nicht 2 Projekte pflegen.