2015-04-14 16 views
6

Ho un problema che nuget pack sta rinominando web.config in web.config.transform nel mio progetto. Sto usando il file csproj con un file nuspec accanto, e non c'è nessuna riga nel file nuspec per dire a nuget di rinominare il file, eppure nell'output e nel file nupkg, web.config viene rinominato in web.config. trasformare.nuget pack rinomina web.config in web.config.transform

web.config non è una parte del progetto, è solo aggiunto dal file nuspec (come normale, è generato dal processo di compilazione)

Qualcuno può suggerire perché sta facendo questo - ci si sente a me come un bug in nuget, ma forse c'è qualcosa nel file csproj che nuget sta prendendo come istruzione per fare il cambio di nome? Cosa potrebbe essere?

comando:

nuget pack path\to\projectfile\myproject.csproj -OutputDirectory C:\temp\publish -Version 1.1.646.32517 -Exclude Template.config -Exclude Template.Debug.config -Exclude Template.Release.config -Verbosity detailed 

uscita:

Attempting to build package from 'myproject.csproj'. 
Packing files from 'path\to\projectfile\bin'. 
Using 'myproject.nuspec' for metadata. 
Add file 'path\to\projectfile\bin\myproject.dll' to package as 'lib\net451\myproject.dll' 
Add file ... to package as ... 
... 
Found packages.config. Using packages listed as dependencies 
Id: myproject 
Version: 1.1.646.32517 
Authors: xxx 
Description: myproject 
Dependencies: Microsoft.AspNet.WebApi (= 5.2.3) 

Added file 'content\ApiTestPage.html'. 
Added file ........ 
..... 
Added file 'content\Web.config.transform'. 
Added file 'lib\net451\myproject.dll'. 

Successfully created package 'C:\temp\publish\myproject.1.1.646.32517.nupkg'. 

nuspec di file:

<?xml version="1.0"?> 
<package > 
    <metadata> 
    <id>$id$</id> 
    <version>$version$</version> 
    <title>$title$</title> 
    <authors>$author$</authors> 
    <owners>$author$</owners> 
    <description>$description$</description> 
    <requireLicenseAcceptance>false</requireLicenseAcceptance> 
    <releaseNotes>xxx release.</releaseNotes> 
    <copyright>Copyright xxx 2015</copyright> 
    </metadata> 
    <files> 
    <file src="bin\*.*" target="content\bin" /> 
    <file src="web.config" target="content" /> 
    </files> 
</package> 

Grazie in anticipo

Chris

+0

Qualche soluzione trovata per questo? – FiringSquadWitness

risposta

1

Avendo lo stesso problema, ho risolto questo aggiungendo esplicitamente Web.config nel mio file nuspec.

<package > 
    <metadata> 
    ... 
    </metadata> 
    <files> 
    <file src="Web.config" target = ""/> 
    </files> 
</package> 

Quando ho notato questo problema, ho anche notato che IIS è stato scontando dalla radice del pacchetto anziché /content, così risolto questo (riluttanza) spostando mio contenuto nella radice del pacchetto. Se non si dispone di questo problema, quindi <file src="Web.config" target = "content"/> potrebbe essere più adatto per voi.

Per completezza, la sezione file del mio nuspec (a causa dello spostamento del contenuto nella root) ora è la seguente.

<files> 
    <file src="Web.config" target = ""/> 
    <file src="*.asmx" target = ""/> 
    <file src="*.asax" target = ""/> 
    <file src="*.html" target = ""/> 
    <file src="bin\*.dll" target="bin" /> 
    </files> 
+0

Purtroppo lo abbiamo già provato e abbiamo provato sia "web.config" che "Web.config", ma non l'abbiamo risolto. È piuttosto strano che nuget inserisca un file di trasformazione nel pacchetto di output, quindi suppongo che si tratti di qualcosa nel file di progetto. – ChrisH