2013-09-16 11 views
8

Ich entwickle eine Anwendung, die mit ClickOnce bereitgestellt werden soll. Nach dem Downgrade von .NET 4.5 auf .NET 4.0 und Ersetzen der Reparatur von fehlerhaften Referenzen habe ich jetzt Probleme mit dem Bereitstellungspaket. Einige Dateien, vor allem System.Net.Http.dll, werden nicht mit der Anwendung bereitgestellt. Ich habe einige Überprüfungen gemacht, kann aber nicht schließen, warum genau das passiert. Mein Verdacht ist, dass das Paket mit der Erwartung erstellt wird, dass diese Assembly bereits auf dem Zielcomputer existiert. Dies wäre vernünftig, wenn das Zielframework .NET 4.5 wäre, aber nicht jetzt, dass es .NET 4 ist. Seltsamerweise wird System.Net.Http.Extensions.dll korrekt bereitgestellt.Bereitstellen von System.Net.Http.dll mit ClickOnce

Einstellungen und Versionsnummern sind für beide Dateien: enter image description here

Verweise auf gleiche Paket aus:

<Reference Include="System.Net.Http, Version=2.2.13.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> 
    <HintPath>..\packages\Microsoft.Net.Http.2.2.13\lib\net40\System.Net.Http.dll</HintPath> 
    <SpecificVersion>False</SpecificVersion> 
</Reference> 
<Reference Include="System.Net.Http.Extensions, Version=2.2.13.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> 
    <SpecificVersion>False</SpecificVersion> 
    <HintPath>..\packages\Microsoft.Net.Http.2.2.13\lib\net40\System.Net.Http.Extensions.dll</HintPath> 
</Reference> 

Zielplattform ist .NET 4 und Bereitstellung Voraussetzung ist auch 4 .NET und ein KB-Update enter image description here

Datei ist nicht einmal in Anwendungsdateien Dialog angezeigt: enter image description here

Irgendwelche Ideen? Ich könnte nur versuchen, die Assembly als eine Inhaltsdatei bereitzustellen, wenn alles andere fehlschlägt. Das Entfernen und erneute Hinzufügen der Referenz hat keinen Unterschied gemacht.

Antwort

14

Posted Nachricht von Microsoft auf Visual Studio support thread sagt, dass:

Dies wird 2013 Bis dahin im nächsten Update zu Visual Studio behoben werden Sie die Abhilfe der Zugabe des Baugruppen als Link zu verwenden haben.

so fand ich die nächsten resolution (issue 8):

Dies geschieht, weil Clickonce bestimmte erforderliche Baugruppen installiert werden kann. Als Abhilfe können Sie wie folgt vor:

  1. Rechtsklick auf das Projekt und wählen Element hinzufügen
  2. Wechseln Sie zu dem Httpclient net40 Paketordner
  3. Im Textfeld Dateiname eingeben Bestehende.
  4. Halten CTRL, wählen System.Net.Http.dll und System.Net.Http.Primitives.dll
  5. auf den Abwärtspfeil Klicken Sie neben der Schaltfläche Hinzufügen und wählen Sie Hinzufügen als Link-
  6. in dem Solution Explorer halten CTRL System.Net.Http.dll und System.Net.Http.WebRequest.dll
  7. Rechtsklick auf die Auswahl wählen, wählen Sie Eigenschaften und kopieren Ausgabeverzeichnis ändern immer
  8. Republish

zu kopieren In meinem Fall genug, um hinzuzufügen ly eine Bibliothek System.Net.Http.

+1

Ich akzeptiere dies wegen des Links zu einem Support-Thread, obwohl es das Problem für mich nicht gelöst hat. Aber zumindest lässt es mich wissen, MS ist sich des Problems bewusst. Ich habe das Problem selbst gelöst, indem ich ein Powershell-Skript zum Erstellen der Bereitstellung mithilfe von mage.exe erstellt habe. Leider ist das nicht so einfach wie es sein sollte. –

+0

Kann ich davon ausgehen, dass sich System.Net.Http.Extensions.dll und System.Net.Http.Primitives.dll im GAC befinden, wenn meine Benutzer .NET 4.5.1 installiert haben? Oder muss ich diese Dateien mit meinem Installer verteilen? – stuzor

+7

Es ist drei Jahre später und in .Net 4.6.2 ist dies immer noch nicht behoben. –

Verwandte Themen