出于某种原因,我必须将许多C#代码从Visual Studio 2010迁移到Visual Studio 2008。
我编辑了我的sln文件以反映更改
Microsoft Visual Studio Solution File, Format Version 11.00
到
Microsoft Visual Studio Solution File, Format Version 10.00
它允许将解决方案加载到VS2008中。之后我编辑了每个csproj以定位Framework .NET 3.5
这允许项目编译
我可以“正确”在发布模式下运行它(由于从.NET 4.0细节到3.5等效的修改,会出现一些错误)
现在我在调试模式下收到以下错误消息
我的google fu透露,在搜索“您尝试调试的应用程序使用版本”时,我可能会搞砸注册表。它向我指出了this page
我很确定这个页面上有一个错误,它引用了2005和2008帮助页面的8.0。所以我这样做了,我创建了值为“v3.5”的注册表项CLRVersionForDebugging
,就像C:\Windows\Microsoft.NET\Framework
中显示的目录一样
现在我收到以下消息:
我找不到相关信息来解决这个问题。这是一个巨大的痛苦。我不想手动重新创建项目,有数百个源/配置文件。任何帮助将不胜感激。
以下是不会调试的项目文件的示例
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
<ProductVersion>9.0.21022</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{61547F81-8F73-4E38-ACDB-B51253A90EBC}</ProjectGuid>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>FlowchartEditor</RootNamespace>
<AssemblyName>FlowchartEditor</AssemblyName>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<TargetFrameworkProfile>
</TargetFrameworkProfile>
<FileAlignment>512</FileAlignment>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<PlatformTarget>x86</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<PlatformTarget>x86</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Editor.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Editor.Designer.cs">
<DependentUpon>Editor.cs</DependentUpon>
</Compile>
<Compile Include="EditorMDI.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="EditorMDI.Designer.cs">
<DependentUpon>EditorMDI.cs</DependentUpon>
</Compile>
<Compile Include="OutputSignalSelect.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="OutputSignalSelect.Designer.cs">
<DependentUpon>OutputSignalSelect.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="PropertiesEditor.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="PropertiesEditorDisplayUnit.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="ToolboxForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="ToolboxForm.Designer.cs">
<DependentUpon>ToolboxForm.cs</DependentUpon>
</Compile>
<EmbeddedResource Include="Editor.resx">
<DependentUpon>Editor.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="EditorMDI.resx">
<DependentUpon>EditorMDI.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="OutputSignalSelect.resx">
<DependentUpon>OutputSignalSelect.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="PropertiesEditor.resx">
<DependentUpon>PropertiesEditor.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<EmbeddedResource Include="ToolboxForm.resx">
<DependentUpon>ToolboxForm.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<None Include="app.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\flowchart\flowchart\flowchart\flowchart.csproj">
<Project>{4E7DDA00-651D-4CC0-833C-83E60ADE552B}</Project>
<Name>flowchart</Name>
</ProjectReference>
<ProjectReference Include="..\PluginMiddleMan\PluginMiddleMan.csproj">
<Project>{CDACB6A0-6DEC-48B6-B3B1-628968B50F5C}</Project>
<Name>PluginMiddleMan</Name>
</ProjectReference>
<ProjectReference Include="..\ToolBox\ToolBox.csproj">
<Project>{D937E1F4-1B9F-4567-B28E-EED24AA31C9C}</Project>
<Name>ToolBox</Name>
</ProjectReference>
<ProjectReference Include="..\WinFormsUI\WinFormsUI.csproj">
<Project>{C75532C4-765B-418E-B09B-46D36B2ABDB1}</Project>
<Name>WinFormsUI</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
答案 0 :(得分:1)
您是否更改了.csproj文件顶部的“ToolsVersion”?发布其中一个项目文件的示例可能很有用。
答案 1 :(得分:1)
在我的VS 2008 SP1安装中,我在AD7Metrics
下有AD7Metrics(Debug)
和HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\9.0
个键。 AD7Metrics
确实包含{449EC4CC-30D2-4032-9256-EE18EB41B62B}
。 AD7Metrics(Debug)
没有。
尝试在{449EC4CC-30D2-4032-9256-EE18EB41B62B}
下创建CLRVersionForDebugging
子项及其AD7Metrics(Debug)
值。
答案 2 :(得分:1)
如果在VS2008中启动新测试项目并进行调试,是否会遇到同样的问题?如果没有,那么也许你最好创建新的csproj文件并将现有的代码文件拖到新项目中。
就个人而言,如果你的visual studio安装是稳定的(其他r2008项目构建正常),我宁愿选择那条在你的注册表中与全局状态混淆的路线。
答案 3 :(得分:0)
检查项目中app.config
文件的内容。它可能包含针对.NET 4的<requiredRuntime>
或<supportedRuntime>
元素,这可能会使调试器混淆。
编辑:暂时删除CLRVersionForDebugging
值。目标是重现第一条错误信息(我对第二条错误信息感觉不好......)