Czy istnieje sposób na utworzenie pakietu NuGet przy użyciu kodu skompilowanego w trybie wydania? A może jest jakiś powód, dla którego powinienem publikować (w tym przypadku lokalnie) tylko pakiety skompilowane w trybie debugowania?
Za każdym razem, gdy dzwonię nuget pack
z katalogu projektu, w którym mam poniższy plik nuspec, w kodzie, który skompilowałem tylko w trybie wydania, narzeka, że nie znalazł biblioteki DLL w folderze debugowania ( "\bin\Debug\SomeProject.dll"
). Jeśli skompiluję go w trybie debugowania, te pliki tam są i pakuje je tak, jak powinno.
<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>$id$</id>
<version>$version$</version>
<authors>$author$</authors>
<owners>$author$</owners>
<iconUrl>http://somewhere/project.png</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>$description$</description>
</metadata>
</package>
nuget pack
wywołań, edytuj plik XML projektu w swoim ulubionym edytorze tekstu.<file src="bin\Release\*.pdb" target="lib\net40\" />
), Albo opublikować pakiet symboli obok pakietu DLL.Jeśli używasz zdarzenia po kompilacji i chcesz utworzyć pakiet, niezależnie od tego, czy używasz konfiguracji debugowania, czy wydania, możesz skonfigurować wiersz poleceń zdarzenia po kompilacji w następujący sposób:
źródło
Aby NuGet automatycznie używał trybu wydania podczas uruchamiania
nuget pack
, wykonaj następujące czynności:.csproj
plik w edytorze tekstu.Znajdź następujący wiersz:
Debug
zRelease
.źródło
Odpowiedzi tutaj są dobre, ale miałem z tym wiele problemów w przypadku projektu .NET Standard. Miałem projekt, który zamierzał publikować tylko pliki binarne wydania, ale nie był zgodny z moją domyślną ścieżką wyjściową kompilacji.
Dodałem to do mojego CSProj, co umożliwiło mi użycie tutaj zaakceptowanej odpowiedzi .
źródło