2012-01-09 46 views
4

我的IIS項目引用引用具有NuGet包一個DLL的NServiceBus項目安裝項目:我能做些什麼,以獲得_PublishedWebsites文件夾包括失蹤的DLL

IISProject-> SetupProject-> NServiceBusProject- > NugetPackage。

當我運行自動構建(TFS)時,NugetPackage.dll和NServiceBusProject被複制到輸出文件夾。但它們不會被複制到_PublishedWebsites文件夾中。 (但我需要的所有其他dll都被複制。)

我對如何讓這些文件自動複製不知所措。

互聯網上常見的答案是設置CopyLocal = True。但是NugetPackage和NServiceBusProject引用已經是這樣。

有誰知道怎麼說:「我真的希望你能包括在發佈的站點相關的項目?

或者是有什麼我可以看看?

+0

該網站是否直接引用這些庫,還是僅引用引用它們的內容? – Betty 2012-01-10 08:06:22

+0

這些文件是否部署到GAC?他們不應該... – KMoraz 2012-01-10 15:10:56

+0

@Betty - IISProject(我的WCF「網站」)引用了一些引用它們的東西。 (見上面的鏈)。 – Vaccano 2012-01-10 15:26:48

回答

2

因爲我剛剛處理了像儘管這個問題的年齡,這是我最終做的,這是不理想的,但它的確工作。

在你實際建設的項目上設置後生成事件。 ,您可以使用$(ProjectDir)變量引用您的當前位置。設置指向「正常」位置的路徑它的項目建成後你需要的dll。我認爲在你的情況下,這將是NServiceBus項目的bin目錄。

您可以使用$(WebProjectOutputDir)變量進入「_PublishedWebsites」目錄。在本地構建時,它指向與正在構建的項目相同的目錄。但是,當使用非標準輸出目錄(也稱爲TFS)調用msbuild時,它將更改爲發佈目錄。

xcopy /Y /S "$(ProjectDir)..\path to needed dll" "$(WebProjectOutputDir)\bin" 

您的構建應該在本地和您的構建環境中使用此腳本工作。唯一的缺點是它有點脆弱,因爲你需要指定缺少dll的確切名稱和相對位置。

相關問題