我有一个需要针对 .NET 3.5 和 .NET 4.0 的类库项目,现在完成的方式是为每个目标框架创建单独的项目并将每个项目中的文件链接到同一源的典型方式。
我想利用 .NET Core 项目中出现的新 csproj 格式,因为新 csproj 格式的多目标更简单。
我创建了一个新的类库 (.NET Core) 项目并开始尝试移植我现有的库。
我真的不需要定位.netcoreapp2.0,所以我的目标框架看起来像这样
<PropertyGroup>
<TargetFrameworks>net35;net40</TargetFrameworks>
</PropertyGroup>
我有以下代码块来帮助解决.NET 3.5新 csproj 格式的奇怪问题。
<PropertyGroup>
<FrameworkPathOverride Condition="'$(TargetFramework)' == 'net35'">C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v3.5\Profile\Client</FrameworkPathOverride>
</PropertyGroup>
到目前为止,一切都很好。事情开始走下坡路的地方是我的类库有 WPF 控件。我收到编译错误,因为它找不到System.Windows
和其他 WPF 相关的项目。
我发现我可以添加对其他 Windows 程序集的引用,所以我添加了以下内容
<ItemGroup>
<Reference Include="PresentationFramework" />
<Reference Include="PresentationCore" />
<Reference Include="WindowsBase" />
</ItemGroup>
这消除了我的大部分错误,但现在我遇到了类似的错误The name 'InitializeComponent' does not exist in the current context