有关将现有.NET类库转换为可移植库的指导吗?

Mar*_*SFT 53 c# portability projects-and-solutions

我有一些类库,其中包含一些非常重要的现有代码.类库目前以.NET 4.0为目标.有关如何将这些库转换为可移植库的指导吗?从查看.csproj看,似乎没有太多差异:

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" />
Run Code Online (Sandbox Code Playgroud)

<ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
Run Code Online (Sandbox Code Playgroud)

尝试将现有类库转换为可移植库是一个好主意还是坏主意?

Der*_*i81 67

我们还将现有库转换为可移植库,并且工作正常.您必须修改项目文件.替换以下行:

<Import Project="..." />
Run Code Online (Sandbox Code Playgroud)

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" />
Run Code Online (Sandbox Code Playgroud)

在PropertyGroup标记内添加以下行

<ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
Run Code Online (Sandbox Code Playgroud)

并从AssemblyInfo.cs文件中删除以下行

[assembly: ComVisible(false)]
[assembly: Guid("...")]
Run Code Online (Sandbox Code Playgroud)

之后,Visual Studio应该在项目属性页面中显示选项卡页面"库",您可以更改可移植库的目标框架.

  • 刚刚编辑了几个项目(可能是较旧的项目文件版本),我还必须将`<TargetFrameworkVersion>`和`<TargetFrameworkProfile>`标签添加到PropertyGroup中.使用TFVersion - > 4.0和TFProfile - > 104的值为我工作. (3认同)
  • 我需要在<PropertyGroup>下添加以下内容:<TargetFrameworkVersion> v4.0 </ TargetFrameworkVersion> <TargetFrameworkProfile> Profile158 </ TargetFrameworkProfile> (2认同)
  • v4.5,Profile7 - > .NET 4.5 + Win 8 (2认同)