iT邦幫忙

DAY 3
1

發開相關系列 第 3

NuGet系列-自動發佈

目前建立nupkg檔的方式有二種,使用NuGet命令列工具或NuGet Package Explorer GUI工具,個人是覺得先用NuGet Package Explorer建立nuspec,之後在用NuGet命令列與MSBuild編譯後自動上傳,會比較方便。
以下為個人的作法,不一定比較好用。

產生nuspec
我會用NuGet Package Explorer設定好nuspec,按工具的File > Save Metadata as,將檔案存到專案的NuGet資料夾下。

建立bat檔
在專案下的NuGet資料夾下建立NuGetPush.bat 檔案,每次版本有變動時也要改NuGetPush.bat(想要自動找dll版本,但不好寫)。

NuGet SetApiKey 776BA4C5-9081-4F06-90A1-C61C0E06E664 -Source http://127.0.0.1
NuGet Pack Common.Logging.Elmah.nuspec -Version 1.0.0.1
NuGet Push Common.Logging.Elmah.1.0.0.1.nupkg -Source http://127.0.0.1
Exit 0

修改.csproj檔
在.csproj最下方處增加下列文字,讓MSBuild在Release Build後執行bat檔,或是建立新的Build Configuration ,不讓Release Build做太多事。

<PropertyGroup Condition=" '$(Configuration)' == 'Release(or NuGet)' ">
    <PostBuildEvent>
        CD $(ProjectDir)NuGet
        NuGetPush.bat
    </PostBuildEvent>
</PropertyGroup>

建立NuGet用的Build Configuration
在工具列的Build的下來選單可以看到預設會有Debug與Release二個Build Configuration,這二個的主要差異只有設定值不同(也可以打開專案屬性視窗,把二個設定值設成一樣),我們可以建立新的Build Configuration來因應不同的情況來改變設定,像常見控件項的專案會增加WPF、Silverlight二種Build Configuration,因為WPF與Silverlight只有少種差異,可以使用不同的Build Configuration來切換不同點,讓一個專案可以有多種產出(但Code中可能會增加#if #endif等編譯用的語法)。

開啟Configuration Manager後,在Action solution configuration的下拉選單上選擇<new>,建議是複制Release的設定。

可以使用Batch Build來做編譯,不同一直切換Build Configuration。

當使用Release(or NuGet) Build時可以從輸出視窗看到執行結果。


上一篇
NuGet系列-使用NuGet Package Explorer建立nupkg檔
下一篇
NuGet系列-安裝特定版本Package
系列文
發開相關7
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言