{"id":6328,"date":"2019-09-01T13:37:40","date_gmt":"2019-09-01T11:37:40","guid":{"rendered":"https:\/\/u-labs.de\/portal\/?p=6328"},"modified":"2019-09-01T13:37:42","modified_gmt":"2019-09-01T11:37:42","slug":"visual-studio-projekt-als-lokale-nuget-paketquelle-einbinden","status":"publish","type":"post","link":"https:\/\/u-labs.de\/portal\/visual-studio-projekt-als-lokale-nuget-paketquelle-einbinden\/","title":{"rendered":"Visual Studio Projekt als lokale NuGet Paketquelle einbinden"},"content":{"rendered":"<p>Visual Studio kann w\u00e4hrend des Buildvorgangs automatisch ein NuGet-Paket erstellen. Im Ordner bin\/Debug entsteht so eine .nupkg Datei, die dem Name der Projektmappe entspricht. Diese l\u00e4sst sich &#8211; sowohl manuell als auch automatisiert &#8211; bereitstellen. Wahlweise auf NuGet.org oder einer selbst gehosteten Registry. Hierf\u00fcr kommt beispielsweise ProGet in Frage. <\/p>\n<p>F\u00fcr die finale Bereitstellung wird man sich zwischen diesen beiden Wegen entscheiden. Allerdings kann es zu Testzwecken hilfreich sein, ein solches NuGet-Paket komplett offline zu referenzieren. In der Ziel-Projektmappe, die also ein lokales NuGet-Paket referenzieren soll, legen wir dazu eine Datei namens <strong>nuget.config<\/strong> an:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\n&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;\n&lt;configuration&gt;\n    &lt;packageSources&gt;\n        &lt;add key=&quot;MyLocalSharedSource&quot; value=&quot;..\\ULabs.VBulletinEntity\\ULabs.VBulletinEntity\\bin\\Debug&quot; \/&gt;\n    &lt;\/packageSources&gt;\n&lt;\/configuration&gt;\n<\/pre>\n<\/div>\n<p>Hier muss <strong>value<\/strong> durch den Pfad zum Ziel-Projekt ersetzt werden, in dem sich die .nupkg Datei befindet. Standardm\u00e4\u00dfig handelt es sich um den bereits erw\u00e4hnten <strong>bin\/Debug<\/strong> Ordner. Der Schl\u00fcssel dient als Bezeichner und kann frei gew\u00e4hlt werden. <\/p>\n<p>\u00d6ffnet man nun die NuGet-Paketverwaltung, erscheint dieser Bezeichnet in der Paketquellen-Liste rechts oben:<\/p>\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/u-img.net\/img\/6836Ma.png\" alt=\"\"\/><\/figure>\n<p>Das paketierte Projekt erscheint nun unter &#8222;Durchsuchen&#8220; und kann installiert werden. <\/p>\n<h2 class=\"wp-block-heading\">Aktualisierungen<\/h2>\n<p>M\u00f6chte man das referenzierte Projekt jedoch aktualisieren, stellt sich dies als etwas nicht so einfach heraus. Der von NuGet vorgesehen Ablauf w\u00e4re das Erh\u00f6hen der Version im Quellprojekt sowie ein Update im Zielprojekt. Zu Testzwecken funktioniert dies jedoch auch einfacher: <\/p>\n<div class=\"wp-block-syntaxhighlighter-code \">\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\ndotnet build ..\/..\/ULabs.VBulletinEntity\/ULabs.VBulletinEntity\/ULabs.VBulletinEntity.csproj\nrmdir \/Q \/S %userprofile%\\.nuget\\packages\\ulabs.vbulletinentity\ndotnet restore\n<\/pre>\n<\/div>\n<p>Das Zielprojekt wird neu gebaut, wodurch auch ein neues NuGet-Paket entsteht. Anschlie\u00dfend muss der Cache gel\u00f6scht werden. Ansonsten greift das Update aufgrund der identischen Versionsnummer nicht. Schlussendlich wird das aktualisierte Paket durch den Restore im Zielprojekt neu geladen. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Visual Studio kann w\u00e4hrend des Buildvorgangs automatisch ein NuGet-Paket erstellen. Im Ordner bin\/Debug entsteht so eine .nupkg Datei, die dem Name der Projektmappe entspricht. Diese l\u00e4sst sich &#8211; sowohl manuell als auch automatisiert &#8211; bereitstellen. Wahlweise auf NuGet.org oder einer selbst gehosteten Registry. Hierf\u00fcr kommt beispielsweise ProGet in Frage. F\u00fcr die finale Bereitstellung wird man &#8230;<\/p>\n","protected":false},"author":5,"featured_media":6330,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[61],"tags":[522,746,390],"class_list":["post-6328","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-softwareentwicklung","tag-asp-net-core","tag-nuget","tag-visual-studio"],"_links":{"self":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/6328","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/comments?post=6328"}],"version-history":[{"count":3,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/6328\/revisions"}],"predecessor-version":[{"id":6332,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/6328\/revisions\/6332"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/media\/6330"}],"wp:attachment":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/media?parent=6328"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/categories?post=6328"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/tags?post=6328"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}