15

我想让使用 Visual Studio 的开发人员能够针对替代 .NET 的自定义框架编写程序(类似于 Windows Phone 和 Silverlight 框架,它们不是现有框架的子集或配置文件),并具有完整的 IntelliSense 支持和所有.

Visual Studio 2010 支持多目标,如果您安装了适当的目标包,您可以在其中目标任何框架(例如 .NET、Silverlight、Robotics、XNA、Windows Phone 和 Mono)。

我发现框架通常有一些参考程序集,它们与子文件夹中的文件%programfiles%\Reference Assemblies\Microsoft\Framework一起放入。我尝试创建一个新文件夹,将我的程序集(例如)与包含 FrameworkList.xml 文件的 RedistList 子文件夹一起放入其中。我清除了文件,但有一个条目类似于:FrameworkList.xmlRedistListMyFramework.dll

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<FileList Redist="MyFramework_1_0">
  <File AssemblyName="MyFramework" Version="1.0.0.0"
    PublicKeyToken="be3ea0d08db41157" Culture="neutral"
    ProcessorArchitecture="MSIL" InGAC="false" />
</FileList>

但是在创建新项目时(重新启动 VS),Visual Studio 并没有在可用框架列表中列出我的框架。显然,我错过了一些东西,但我无法弄清楚是什么。

如何创建这样一个允许 Visual Studio 看到自定义框架或具有相同效果的目标包?Targeting Pack 中通常包含哪些内容?可以添加自定义构建步骤吗?

4

2 回答 2

1

我认为 Visual Studio 首先查看注册表,特别是在这个键中:(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework或 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft.NETFramework 在 64 位系统上)

您会发现一堆有趣的子键,其中一些实际上指向program files\referenced assemblies文件夹。

于 2011-11-28T11:56:33.870 回答
0

你在轨道上。问题是“新建项目”对话框有一个已知限制,它只列出基于 .NET Framework 的框架。

Windows Phone、Silverlight 和 Portable 都在模板端实现了这一点。基本上,他们有一个预先设置 TargetFrameworkIdentifier MSBuild 属性的模板。例如,MyCustomFramework,其中 MyCustomFramework 是 Microsoft\Framework 文件夹下的框架名称。

于 2012-09-27T01:35:28.597 回答