2

出于某种原因,我必须将大量 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 透露,在搜索“您尝试调试的应用程序使用版本”时,我可能会搞砸注册表。它把我指向了这个页面

我很确定这个页面上有一个错误,它指的是 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>
4

4 回答 4

1

您是否更改了 .csproj 文件的 tol 中的“ToolsVersion”?发布其中一个项目文件的示例可能很有用。

于 2010-10-08T19:15:21.897 回答
1

如果你在 VS2008 中启动一个新的测试项目并进行调试,你会遇到同样的问题吗?如果没有,那么您最好创建新的 csproj 文件并将现有代码文件拖到新项目中。

就个人而言,如果您的 Visual Studio 安装是稳定的(其他 r2008 项目构建正常),我宁愿走那条路去处理注册表中的全局状态。

于 2010-10-08T21:28:15.463 回答
1

在我的 VS 2008 SP1 安装中,AD7MetricsAD7Metrics(Debug)HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStudio\9.0. AD7Metrics确实包含{449EC4CC-30D2-4032-9256-EE18EB41B62B}. AD7Metrics(Debug)才不是。

尝试在 下创建{449EC4CC-30D2-4032-9256-EE18EB41B62B}子键及其CLRVersionForDebuggingAD7Metrics(Debug)

于 2010-10-08T19:35:00.070 回答
0

检查app.config项目中文件的内容。它可能包含面向 .NET 4<requiredRuntime><supportedRuntime>元素,这可能会使调试器感到困惑。

编辑:CLRVersionForDebugging暂时摆脱这些价值观。目标是重现第一条错误消息(我对第二条有不好的感觉......)

于 2010-10-08T22:49:47.537 回答