Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Med visuella format kan vanliga kontroller ändras baserat på det tema som användaren har valt. Som standard är visuella format inte aktiverade för WPF-program (Windows Presentation Foundation), så du måste aktivera dem manuellt. Att aktivera visuella format för ett WPF-program och sedan publicera lösningen orsakar dock ett fel. Det här avsnittet beskriver hur du löser det här felet och processen för att publicera ett WPF-program med visuella format aktiverade. Mer information om visuella format finns i Översikt över visuella format. Mer information om felmeddelandet finns i Felsöka specifika fel i ClickOnce-distributioner.
För att lösa felet och publicera lösningen måste du utföra följande uppgifter:
Publicera lösningen utan att visuella format har aktiverats.
Bädda in manifestfilen i den körbara filen för den publicerade lösningen.
Signera program- och distributionsmanifesten.
Sedan kan du flytta de publicerade filerna till den plats där du vill att slutanvändarna ska installera programmet.
Publicera lösningen utan att visuella format har aktiverats
Kontrollera att ditt projekt inte har visuella formatmallar aktiverade. Kontrollera först projektets manifestfil för följande XML. Om XML:en finns omsluter du sedan XML-koden med en kommentartagg.
Som standardinställning är visuella format inte aktiverade.
<dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*" /> </dependentAssembly> </dependency>Följande procedurer visar hur du öppnar manifestfilen som är associerad med projektet.
Öppna manifestfilen i ett Visual Basic-projekt
På menyraden väljer du Projekt, ProjectName-egenskaper, där ProjectName är namnet på ditt WPF-projekt.
Egenskapssidorna för WPF-projektet visas.
På fliken Program väljer du Visa Windows-inställningar.
Filen app.manifest öppnas i kodredigeraren.
Öppna manifestfilen i ett C#-projekt
På menyraden väljer du Projekt, ProjectName-egenskaper, där ProjectName är namnet på ditt WPF-projekt.
Egenskapssidorna för WPF-projektet visas.
På fliken Program antecknar du namnet som visas i manifestfältet. Det här är namnet på manifestet som är associerat med projektet.
Anmärkning
Om Inbäddningsmanifest med standardinställningar eller Skapa program utan manifest visas i manifestfältet är visuella format inte aktiverade. Om namnet på en manifestfil visas i manifestfältet går du vidare till nästa steg i den här proceduren.
I Solution Explorer väljer du Visa alla filer.
Den här knappen visar alla projektobjekt, inklusive de som har exkluderats och de som normalt är dolda. Manifestfilen visas som ett projektobjekt.
Skapa och publicera din lösning. Mer information om hur du publicerar lösningen finns i Så här publicerar du ett ClickOnce-program med hjälp av publiceringsguiden.
Skapa en manifestfil
Klistra in följande XML i en Anteckningar-fil.
Den här XML-koden beskriver sammansättningen som innehåller kontroller som stöder visuella format.
<?xml version="1.0" encoding="utf-8"?> <asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*" /> </dependentAssembly> </dependency> </asmv1:assembly>Klicka på Arkiv i Anteckningar och klicka sedan på Spara som.
I dialogrutan Spara som i listrutan Spara som-typ väljer du Alla filer.
I rutan Filnamn namnger du filen och lägger till .manifestet i slutet av filnamnet. Till exempel: themes.manifest.
Välj knappen Bläddra bland mappar , välj valfri mapp och klicka sedan på Spara.
Anmärkning
De återstående procedurerna förutsätter att namnet på den här filen är themes.manifest och att filen sparas i katalogen C:\temp på datorn.
Bädda in manifestfilen i den körbara filen i den publicerade lösningen
Öppna Developer Command Prompt för Visual Studio.
Mer information om hur du öppnar Kommandotolken för utvecklare för Visual Studio finns i Kommandotolken för utvecklare och utvecklaren PowerShell.
Anmärkning
De återstående stegen gör följande antaganden om din lösning:
Namnet på lösningen är MyWPFProject.
Lösningen finns i följande katalog:
%UserProfile%\Documents\Visual Studio version\Projects\.Lösningen publiceras till följande katalog:
%UserProfile%\Documents\Visual Studio version\Projects\publish.Den senaste versionen av de publicerade programfilerna finns i följande katalog:
%UserProfile%\Documents\Visual Studio version\Projects\publish\Application Files\WPFApp_1_0_0_0
Du behöver inte använda namnet eller katalogplatserna som beskrivs ovan. Namnet och platserna som beskrivs ovan används endast för att illustrera de steg som krävs för att publicera din lösning.
I kommandotolken ändrar du sökvägen till katalogen som innehåller den senaste versionen av de publicerade programfilerna. I följande exempel visas det här steget.
cd "%UserProfile%\Documents\Visual Studio version\Projects\MyWPFProject\publish\Application Files\WPFApp_1_0_0_0"I kommandotolken kör du följande kommando för att bädda in manifestfilen i programmets körbara fil.
mt -manifest c:\temp\themes.manifest -outputresource:MyWPFApp.exe.deploy
Signera program- och distributionsmanifesten
Kör följande kommando i kommandotolken för att ta bort .deploy-tillägget från den körbara filen i den aktuella katalogen.
ren MyWPFApp.exe.deploy MyWPFApp.exeAnmärkning
Det här exemplet förutsätter att endast en fil har filnamnstillägget .deploy . Se till att du byter namn på alla filer i den här katalogen som har filnamnstillägget .deploy .
Kör följande kommando i kommandotolken för att signera programmanifestet.
mage -u MyWPFApp.exe.manifest -cf ..\..\..\MyWPFApp_TemporaryKey.pfxAnmärkning
I det här exemplet förutsätts att du signerar manifestet med hjälp av .pfx-filen i projektet. Om du inte signerar manifestet kan du utelämna parametern
-cfsom används i det här exemplet. Om du signerar manifestet med ett certifikat som kräver ett lösenord anger du alternativet-password(For example: mage -u MyWPFApp.exe.manifest -cf ..\..\..\MyWPFApp_TemporaryKey.pfx - password Password).I kommandotolken kör du följande kommando för att lägga till .deploy-tillägget i namnet på filen som du bytte namn på i ett tidigare steg i den här proceduren.
ren MyWPFApp.exe MyWPFApp.exe.deployAnmärkning
Det här exemplet förutsätter att endast en fil hade filnamnstillägget .deploy . Se till att du byter namn på alla filer i den här katalogen som tidigare hade filnamnstillägget .deploy .
I kommandotolken kör du följande kommando för att signera distributionsmanifestet.
mage -u ..\..\MyWPFApp.application -appm MyWPFApp.exe.manifest -cf ..\..\..\MyWPFApp_TemporaryKey.pfxAnmärkning
I det här exemplet förutsätts att du signerar manifestet med hjälp av .pfx-filen i projektet. Om du inte signerar manifestet kan du utelämna parametern
-cfsom används i det här exemplet. Om du signerar manifestet med ett certifikat som kräver ett lösenord anger du alternativet-password, som i det här exemplet:For example: mage -u MyWPFApp.exe.manifest -cf ..\..\..\MyWPFApp_TemporaryKey.pfx - password Password.När du har utfört de här stegen kan du flytta de publicerade filerna till den plats där du vill att slutanvändarna ska installera programmet. Om du tänker uppdatera lösningen ofta kan du flytta dessa kommandon till ett skript och köra skriptet varje gång du publicerar en ny version.