我需要将一个项目编译成 .Net 3.5 和 .Net 4.0 双版本。有什么最简便的方法吗?如果我从另一个程序集引用这个项目,如何确定目标运行时?或者我应该直接引用二进制文件?
我需要将一个项目编译成 .Net 3.5 和 .Net 4.0 双版本。有什么最简便的方法吗?如果我从另一个程序集引用这个项目,如何确定目标运行时?或者我应该直接引用二进制文件?
我通过拥有两个csproj文件来实现这一点。这样我就可以轻松设置版本、引用、构建符号等内容。为了避免在两个文件中都要维护文件列表,我使用一个全包含的方法 - 即
我在次要的.csproj文件中有:
<Compile Include="..\TheMainProject\**\*.cs" />
这句话的意思是“编译..\TheMainProject目录及其子目录中所有的.cs文件。”
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<MSBuild Projects="@(ProjectsToBuild)"
Properties="TargetFrameworkVersion=$(CustomTargetFrameworkVersion)" />
更多详细信息请参见:
你为什么需要那个?
使用发布/构建前任务,你可以运行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
但是我仍然没有看到任何需要那个的情况。