2016-09-08 1 views
0

Ich bin ein eigenes Paket aus a project erstellen, die die web.config oder app.config-Datei der Zielanwendung ändern, muss bei der Installation. Ich habe erfolgreich erstellt und veröffentlicht das Paket, religiös die folgende instructions provided by nuget, vor allem, dass von file and source code transformation.System.IO.InvalidDataException: Fehler bei Transformation Anwendung auf ‚web.config‘

Allerdings, wenn ich versuchen, das Paket in einem Projekt zu installieren, erhalte ich die Fehlermeldung:

System.IO.InvalidDataException: An error occurred while applying transformation to 'web.config' in project 'WebTestsNuget' No element in the source document matches '/configuration/system.runtime.caching/memoryCache'

Ich habe einige Suche und this ASP.NET blog post und this other post schlage ich sollte das xmlns Attribut im configuration Knoten meiner entfernen .xdt Dateien. Als ich das getan habe, veröffentlicht und versucht habe, es erneut zu installieren, habe ich den Fehler bekommen.

System.IO.InvalidDataException: An error occurred while applying transformation to 'web.config' in project 'WebTestsNuget' 'xdt' is an undeclared prefix.

fand ich eine similar issue reported on Github aber die Umwelt MonoDevelop ist und seinen Weg zurück in 2013. ich Visual Studio 2015 und .NET 4.6.1 für meine Arbeit bin mit, damit es nicht so hilfreich war.

Was kann ich tun, um dieses Problem zu lösen? (NB: Ich bin mit Nuget 3.4.4.1321)

Antwort

0

Nach vielen vergeblichen Suche und Versuchen, habe ich endlich mit der alten (pre-NuGet 2.6) Art und Weise, dies zu tun experimentiert: .transform Dateien verwenden, und es hat funktioniert wie Charme !

Hier how to transform Web.Config using .transform files. Es ist viel einfacher, dass XDT verwenden. Angenommen, Sie möchten die Datei web.config (oder app.config) umwandeln, erstellen Sie eine Datei mit dem Namen web.config.transform (oder app.config.transform) und fügen Sie die Knoten, die Sie zusammenführen möchten, in die Zieldatei .config ein.

Zum Beispiel, wenn Ihre .transform Datei enthält folgende Komponenten:

<configuration> 
    <system.webServer> 
     <modules> 
      <add name="MyNuModule" type="Sample.MyNuModule" /> 
     </modules> 
    <system.webServer> 
</configuration> 

und die Ziel-Konfigurationsdatei enthält folgende Komponenten:

<configuration> 
    . 
    . 
    <system.webServer> 
     <modules> 
      <add name="Module" type="Sample.Module" /> 
     </modules> 
    <system.webServer> 
    . 
    . 
</configuration> 

die resultierende nach der Zusammenführung wird

<configuration> 
    . 
    . 
    <system.webServer> 
     <modules> 
      <add name="MyNuModule" type="Sample.MyNuModule" /> 
      <add name="Module" type="Sample.Module" /> 
     </modules> 
    <system.webServer> 
    . 
    . 
</configuration> 

Wenn die Zieldatei nicht diehatKnoten oder sogar der <system.webServer> Knoten, wird es entsprechend hinzufügen.

Verwandte Themen