VS2010和VS2012在同一目录中的两个C#项目文件
问题描述:
我正在编写一个C#项目,我想在VS2010和VS2012下编译这两个项目。我想为此提供两个不同的.csproj
文件,即使VS2010-project可以直接包含在VS2012解决方案中。由于不同的目标.NET版本,我需要两个不同的项目文件。VS2010和VS2012在同一目录中的两个C#项目文件
此外,我希望这两个项目在VS2010和VS2012的不同解决方案中命名相同。两者应共享相同的.cs
文件以及可能的一些资源。
简单的任务?奇怪的事情,但我不知道,如何做到这一点。
第一的方针,不工作:名称项目文件作为
MyProject10.csproj
和MyProject12.csproj
,无论是在MyProject
文件夹离开。但在这种情况下,它们在解决方案中显示为MyProject10
和MyProject12
,而不仅仅是MyProject
。如果我在解决方案资源管理器中将其重命名为MyProject
,它会自动重命名相应的项目文件。第二种方法,工作,但有缺点。将项目文件移动到名为
VS10
和VS12
的不同子目录中,手动更改.csproj
文件中的包含路径,并将..\
添加为前缀。在这种情况下,我在解决方案资源管理器中的图标下看到奇怪的快捷方式箭头。
第二个方法,唯一不好的是,当我使用的解决方案资源管理器在项目中添加新的文件,该文件被放置在VS10
子目录,而不是在项目根目录。但似乎.csproj
的项目目录文件是包含设计文件的目录,而我使用了我真正不想做的力量的黑暗面。
有什么更好的点子?
答
值得一试的是将两个项目中输出程序集的名称更改为同一个。项目文件仍然会有所不同,但输出程序集将具有相同的名称。还要小心输出目录在哪里。我认为这样你可以解决你的问题。
为什么不一个项目有两个不同的构建配置文件? –
@JonSkeet因为我想在VS2010下编译为.NET 4,在VS2012下编译为.NET 4.5。我想我应该有两个不同的项目。 – Mikhail
在一个项目中使用不同的配置可以将不同版本的.NET作为目标 - 您需要手动编辑项目文件,但这是可能的。 –