Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net VisualStudio2010中的自定义框架目标_.net_Visual Studio 2010_Multitargeting - Fatal编程技术网

.net VisualStudio2010中的自定义框架目标

.net VisualStudio2010中的自定义框架目标,.net,visual-studio-2010,multitargeting,.net,Visual Studio 2010,Multitargeting,我想让使用Visual Studio的开发人员能够针对替代.NET的自定义框架编写程序(类似于Windows Phone和Silverlight框架,它们不是现有框架的子集或概要文件),并具有完全的IntelliSense支持 VisualStudio2010支持多目标定位,如果安装了相应的目标定位包,则可以将任何框架(如.NET、Silverlight、Robotics、XNA、Windows Phone和Mono)作为目标 我发现框架通常有一些引用程序集,它们放在%programfiles%

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

VisualStudio2010支持多目标定位,如果安装了相应的目标定位包,则可以将任何框架(如.NET、Silverlight、Robotics、XNA、Windows Phone和Mono)作为目标

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

<?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>

但是VisualStudio在创建新项目时(在重新启动VS之后)不会将我的框架列在可用框架列表中。很明显,我遗漏了一些东西,但我还没有弄清楚是什么


如何创建这样一个目标包,允许VisualStudio查看自定义框架或具有相同效果的内容?目标套餐通常包括哪些内容?可以添加自定义生成步骤吗?

我认为Visual Studio首先会查看注册表,特别是在以下项中:
HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\.NETFramework
(或64位系统上的HKEY\U LOCAL\U MACHINE\SOFTWARE\Wow6432Node\Microsoft.NETFramework)


你会发现一堆有趣的子键,其中一些实际上指向
程序文件\引用的程序集
文件夹。

你已经找到了答案。问题是“新建项目”对话框有一个已知的限制,它只列出基于.NET Framework的框架


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

您真的在编写自己的框架实现吗?是的。对于一个带有运行自定义CLR实现的自定义操作系统的自定义系统,我正在编写一个自定义框架。哇-这将是开源的吗?它可能是开源的。它并不是要取代.NET或Mono,而是一个新的框架,消除了.NET的所有缺陷。NET设计人员希望以不同方式完成的所有工作,以及我认为需要做得更好的所有工作,都将成为框架的一部分。这个框架将成为我长期以来试图构建的操作系统的基础。你的框架在GAC中注册了吗?我看了一下,它对我没有帮助。仅仅在寄存器中的半随机位置添加密钥既不成立,也不起作用(我尝试过)。其他人已经添加了框架或配置文件(Microsoft,还有Mono开发人员),所以一定有人可以回答我的问题。你看过这个链接的“目标包”部分吗?正如问题中提到的,我确实尝试了它在目标包部分中所说的内容(添加引用程序集和FrameworkList.xml文件),但是,既然这没有什么区别,我肯定遗漏了一些东西。@Virtlink-您是否偶然尝试修改FrameworkList.xml?是的。请看原来的帖子,我扩展了它。