2010-03-17 80 views
7

在Visual Studio 2008項目屬性「應用程序」選項卡中,我可以將輸出類型設置爲Windows應用程序,控制檯應用程序或類庫。我有一個我想要構建的項目作爲獨立工具(控制檯應用程序)可供我正在作爲類庫使用的其他工具使用。Visual Studio項目構建爲可執行文件和DLL

VS GUI只允許我選擇其中之一,並且始終構建proj兩次是不方便的。

如何設置它在單個構建作業中構建兩種輸出類型?我寫一些自定義的MSBuild .targets文件或什麼?

+0

相關問題優先考慮測試我的工具;如果我使用Visual Studio的「創建單元測試」來生成測試項目,則會根據當時是否將主項目設置爲控制檯應用程序或類別庫而有所不同,這會稍微變得不同*,以便將主項目切換回來&將會交替地中斷測試項目的構建。瘸。 – 2010-03-17 23:00:30

回答

18

如果我沒有弄錯,可以使用EXE作爲類庫。
只需在其他項目中添加對其的引用即可。 .NET EXE只是一個程序集。

3

創建兩個單獨的項目,一個用於控制檯應用程序,另一個用於類庫。爲每個設置適當的輸出類型。

不要忘記將您的類庫的引用添加到控制檯應用程序項目中。

3

您無法編譯爲exe和dll。程序集是否被視爲exe或dll由文件的可移植可執行文件頭中的單個位標誌確定(有關更多信息,請參閱http://msdn.microsoft.com/en-us/magazine/cc301805.aspx)。該標誌不能同時具有兩個值。

你可以做什麼來滿足你的需要是添加一個對你的exe的參考。您不能在某些版本的Visual Studio(2005及更低版本)中執行此操作,因爲UI不會讓您執行此操作,但您可以手動編輯項目文件以添加參考。 Visual Studio的更高版本允許您使用UI添加對exe文件的引用。

+1

該位標誌意味着單個*文件*不能同時是DLL和.exe,這很明顯。但是.NET構建不能有多個構建目標?這聽起來很腥,如果這是真的,它會是MSBuild的一個巨大侷限(所以也許我需要學習NAnt ...) – 2010-03-18 20:08:13

4

您可以默認構建dll,並製作另一個依賴目標,它只是使用dll的包裝控制檯應用程序。

3

我認爲最簡單的解決方案是構建爲一個EXE,然後有一個後期構建操作,將EXE複製到一個DLL中。這兩者在.Net中沒有真正的區別。

相關問題