为什么我们的Expression Evaluator需要"启用32位应用程序"在IIS中是真的吗?

时间:2015-04-15 15:16:41

标签: visual-studio iis vspackage

我们有自己的Visual Studio包,包含自定义语言和调试器。 除非附加到的apppool的属性“enable 32-bit applications”设置为true,否则调试器根本不起作用。

但为什么?

配置如下:

<PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProductVersion>8.0.50727</ProductVersion>
    <SchemaVersion>2.0</SchemaVersion>
    <ProjectGuid>{37269d10-8717-49b5-b00a-312a87e63785}</ProjectGuid>
    <OutputType>Library</OutputType>

<TargetPlatform>v2</TargetPlatform><FileUpgradeFlags></FileUpgradeFlags><OldToolsVersion>3.5</OldToolsVersion><UpgradeBackupLocation></UpgradeBackupLocation><TargetFrameworkVersion>v4.5</TargetFrameworkVersion><TargetFrameworkProfile />
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>

1 个答案:

答案 0 :(得分:0)

表达式计算器需要在64位进程中运行。一个好方法是创建一个独立的64位版本的EE库,远程调试器代理可以引用它。 64位EE工厂的COM类应在HKCR\\CLSID下注册。您目前使用相同的guid在<vsroot>\\CLSID下注册32位EE工厂,并在<vsroot>\\AD7Metrics\\ExpressionEvaluator\\{x}\\{y}\\下注册CLSID的值,如上所述here