2012-05-28 13 views
26

Chcę utworzyć pakiet NuGet, który dodaje plik .cs (podstawową klasę, którą konsument pakietu jest zachęcany do późniejszego modyfikowania) do katalogu głównego projektu docelowego podczas instalacji.Czy NuGet może dodać plik .cs do projektu docelowego?

Czy to możliwe? Wszystko, co znalazłem do tej pory, mówi "nie, możesz instalować pliki tylko pod katalogiem paczki".

Odpowiedz

37

Po prostu umieść plik .cs w folderze o nazwie "content", w katalogu głównym pakietu. .

od docs:

„można projektowania układu strukturę katalogów, który następuje konwencje Nuget

narzędzia - Folder narzędzia pakietu jest dla skryptów PowerShell, a następnie programów dostępnych z Package Manager . konsola Po folder jest kopiowany do projektu celowego, jest on dodawany do `$ env: Ścieżka (PATH) zmienna

lib - zwoje (pliki .dll) w folderze lib są dodawane jako zespołu. r eferencje po zainstalowaniu pakietu.

treść - Pliki w folderze zawartości są kopiowane do katalogu głównego aplikacji po zainstalowaniu pakietu.

Pomyśl o folderze Treść jako katalogu głównym docelowej aplikacji. Na przykład, jeśli chcę pakiet aby dodać obraz w katalogu/images of docelowej aplikacji, upewnij się, aby umieścić obraz w folderze Content/images pakietu „

Zob. http://docs.nuget.org/docs/creating-packages/creating-and-publishing-a-package#From_a_convention_based_working_directory

+0

Will aktualizacją pakiet roboczy później, kiedy zrobić modyfikacje –

+4

Należy pamiętać, że zawartość zostanie skopiowana tylko gdy pakiet jest zainstalowany, uaktualnienie/przywrócenie pakietu nie powoduje zmiany zawartości, t w związku z tym zawartość nie może zostać zaktualizowana za pomocą nuget. Nuget jest naprawdę użyteczny tylko dla zależności .net. – trampster

+0

@trampster jest tak nadal dzisiaj? Czy najnowsze kopie NuGet pozwalają na aktualizację plików "treści"? – Todd

8

można również skorzystać z sekcji <files> z następujących nuspec przenieść plik do folderu zawartości, gdy pakiet jest budowany:

<?xml version="1.0"?> 
<package> 
    <metadata> 
    ... 
    </metadata> 
    <files> 
    <file src="App.Template.config" target="content" /> 
    <file src="Program.template.cs" target="content" /> 
    </files> 
</package> 
+2

Przydatny może być symbol wieloznaczny katalogu \ * \ *. Następujące kopie wszystkich podkatalogów katalogu ./Assets do ./content/Assets w pakiecie (i wyklucza wszelkie pliki o nazwach readme.txt). stevieg

Powiązane problemy