2011-08-16 55 views
8

我需要爲.Net 3.5和.Net 4.0編譯一個項目。做這件事的最低摩擦方式是什麼?如果我從另一個程序集中引用此項目,那麼如何確定哪個運行時目標?或者我應該直接引用二進制文件?如何同時爲.Net 3.5和4編譯一個項目

+2

是否有實際的差異是你的代碼或在針對不同平臺時參考哪些dll? – alun

+1

如果你沒有在你的代碼中使用任何.NET4功能,你爲什麼需要編譯爲.NET 4? .NET4項目可以毫無問題地使用.NET 3.5編譯的二進制文件。 – jgauffin

+0

不,代碼沒有區別。所有程序集都引用2.0版本的庫。 –

回答

9

我這樣做只需要有兩個csproj文件。然後,我可以輕鬆設置版本,參考,構建符號等。爲了避免維護兩個文件列表,我用毯子包括 - 即

我(在二級的.csproj):

<Compile Include="..\TheMainProject\**\*.cs" /> 

這是說「編譯所有的.cs文件和在 .. \ TheMainProject下。

+0

謝謝,我想這就是我要去的。 –

1

你爲什麼需要這個?

隨着柱/預構建的任務,你可以運行的MSBuild目標不同的框架,看到的說法 「toolversion」

http://msdn.microsoft.com/en-us/library/ms164311.aspx

MSBuild.exe MyProject.proj /ToolsVersion:4.0

而看看

http://msdn.microsoft.com/en-us/library/ee395432.aspx

但我仍沒有看到任何situat離子在哪裏我需要。

+0

定位完整運行時,silverlight,monodroid,...或者當然,如果你的代碼在.net版本之間有點不同,也會有類似的情況。也許增加一個功能只支持新版本的框架。 – CodesInChaos

相關問題