假设我有一个带有一些条件编译的类库,最终构建为MyPortable.dll和MyPortable.X.dll,后者是启用条件编译的版本。
然后我有引用“MyPortable.dll”的“核心”项目。到现在为止还挺好。
但是,我的问题在于第三个项目(“App”),它引用了“Core”,但需要使用“MyPortable.X.dll”(这是“Core”使用的不同构建),但是因为“Core”链接到“MyPortable.dll”,所以我的“App”也使用相同的版本结束,而不是“MyPortable.X.dll”。
有没有办法做到这一点?代码是这样的:
我的便携式
namespace MyPortable
{
public class Person {
public string Name { get; set; }
}
public class Something {
public List<Person> GetPersons() {
List<Person> l = new List<Person>();
l.Add(new Person { Name = "Name 1" });
#if PLATFORM_X
l.Add(new Person { Name = "Name 2" });
#endif
return l;
}
}
}
我首先在未启用“PLATFORM_X”的情况下编译 MyPortable,然后再次编译,这次打开了标志。文件引用如下(注意我直接引用 Core.csproj):
Core\References\MyPortable.dll
App\
\References\Core.csproj
\References\MyPortable.X.dll