Aufbau einer website-Projekt als 32-bit-auf eine 64-bit-build-server
Ich habe eine VS 2010 Lösung, die enthält eine website, einen web-service innerhalb der it. Der web-Dienst verweist auf eine COM-dll, die die Probleme verursacht, wenn die Lösung basiert auf der 64-bit-build-server. Ich bekomme die typische 32/64-bit-Fehler:
ASPNETCOMPILER : Fehler ASPCONFIG: Konnte nicht geladen, Datei oder assembly 'xxx' oder eine Ihrer Abhängigkeiten. Ein es wurde versucht, ein Programm mit einem falschen format
Wenn ich Baue die Website mit der 32-bit-aspnet_compiler es baut okay. Also, wie kann ich festlegen, dass eine website aufgebaut sein sollten als 32-bit? Der Konfigurations-Manager in VS wird nur lassen Sie mich wählen, eine Beliebige der CPU, also kann ich es nicht ändern zu x86 für diese website...
Dank.
- Ich habe das gleiche problem, mit "vjslib". Es ist ein bekanntes problem unter .NET 4.0.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie den folgenden Befehl verwenden. Tatsächlich, in diesem Fall verwenden Sie ASPNetCompiler x86 edition, erstellen Sie Ihre eigenen Projekt
Können Sie auch
x86_amd64
für jede cpu. Beachten Sie, dass anstelle der VerwendungMSBuild
können Sie laden Sie Ihre confiiguration wieverwenden oben confiuguration verwenden Sie
@Vilx, Überprüfen Sie den dependency walker finden Sie heraus, wie weit es geht. Meine Vermutung ist, es würde wahrscheinlich stoppen Sie am
vjsnativ.dll
. Wenn das ist, so weit wie es geht, versuchen diese Problemumgehung.Sonst werden Sie zu jagen Sie jede DLL, die das Programm nicht finden kann, und kopieren Sie Sie in Ihr Programm (oder dessen bin) Verzeichnis.
Nicht die compilation problem, sondern das problem für die Umwelt. Die ASP.NET Website wird immer gebaut werden, als eine Beliebige CPU.
Jedoch, wenn Sie laden Sie es auf 64-bit-Computer, die standardmäßig 64-bit-version von IIS ausgeführt wird, die
ist nicht zum laden von COM-DLL und es funktioniert nicht.
Müssen Sie zum konfigurieren von IIS zum ausführen von 32-bit-Anwendungen auf 64-bit-Windows:
http://www.microsoft.com/technet/prodtechnol/windowsserver2003/library/iis/405f5bb5-87a3-43d2-8138-54b75db73aa1.mspx
Müssen Sie die ASP.NET Compilation-Tool (Aspnet_compiler.exe). Suchen Sie nach der 'Suche nach der Richtigen Version Aspnet_compiler.exe' Kapitel am Ende des doc, es wird erklärt, wie man die 32 vs 64 bit-Versionen von dem tool.
Rechten Maustaste auf Ihr Web-Projekt in Visual Studio.
Wählen Sie "Eigenschaften".
Klicken Sie auf die "Build" - Reiter auf der linken Seite.
Unter "allgemein" ändern Sie den "Platform Target" auf "x86" um, so wird es immer zu bauen, für 32-bit.
Nun, wenn Sie dies tun, können Sie feststellen, auf der gleichen "Build" Registerkarte "Konfiguration" ist auf "Aktiv (Debug)". Sie benötigen, um das zu ändern, drop-down, um all die verschiedenen Einstellungen, die Sie haben (z.B. "Release", "QA", "Test", "Demo", etc..) und machen das gleiche "Platform Target" auf "x86" für jeden.
Vergessen Sie nicht, klicken Sie auf die Schaltfläche "Speichern", wenn Sie fertig sind - denken Sie daran, stellen Sie ihn zurück auf "Debug", wenn Sie auf Ihre "development box".
Das ist wahrscheinlich, warum es funktioniert nur, wenn Sie bauen es auf Ihrem Computer und nicht auf dem Build-Server wie auf dem Build-Server ist wahrscheinlich einrichten zu bauen gegen eine andere Konfiguration - die richtige, denn Sie sollte nicht mit der "Debug" - Konfiguration auf einem Server Erstellen.
Dies ist zwar eine alte Frage, ich Stand vor dem gleichen problem, und ich hatte einige Probleme eine Antwort zu finden.
Visual studio bietet zwei Optionen für die Entwicklung von web-Anwendungen: web-sites und web-Anwendungen. Wir Anwendungen generieren Versammlungen pro Seite, die dynamisch aktualisiert, wenn sich die Quelle ändert. Auf der anderen Seite web-application-Projekte werden kompiliert in visual studio, um eine Montage. Diese assembly ist nicht automatisch neu, nachdem die änderungen in den Quellcode. Die Unterschiede sind im detail erläutert in diesem Dokument: http://msdn.microsoft.com/en-us/library/aa730880(VS.80).aspx#wapp_topic5
Einen weiteren Unterschied, der hier relevant ist, ist, dass web-application-Projekten können Sie tatsächlich wählen Sie eine Architektur im Gegensatz zu Website-Projekten. Die Konvertierung einer Website zu einer web-Anwendung ist nicht sehr schwer, aber nicht zu einfach (die option in web konvertieren Anwendung ist nur verfügbar nach dem erstellen eines ... - web-Anwendung). Schritte, die Sie ergreifen können: