调试器尝试使用错误的程序集名称启动程序集

时间:2016-10-19 05:02:21

标签: c# .net winforms .net-assembly visual-studio-debugging

我在Visual Studio 2010中使用C#应用程序。我想要每个配置的程序集名称。也就是说,我需要不同的程序集名称来进行调试和发布配置。所以我编辑了我的 csproj ,如下所示。

<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
 <PropertyGroup>
    <...>
    <...>
  </PropertyGroup>
  <Choose>
    <When Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
      <PropertyGroup>
        <AssemblyName>MyApplication</AssemblyName>
      </PropertyGroup>
    </When>
    <When Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
      <PropertyGroup>
        <AssemblyName>MyApplicationd</AssemblyName>
      </PropertyGroup>
    </When>
  </Choose>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
    <...>
    <OutputPath>..\..\..\..\utils\debug\Project\x64\</OutputPath>
    <...>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
    <...>
    <OutputPath>..\..\..\..\utils\release\Project\x64\</OutputPath>
    <...>
  </PropertyGroup>
</Project>

构建成功,我有 MyApplication.exe 用于发布配置, MyApplicationd.exe 用于Debug配置。但是当我,F5 / F10在调试模式下运行项目时,我的误差低于此值。

  

Visual Studio无法启动调试,因为调试目标是   失踪。请构建项目并重试,或设置OutputPath和   AssemblyName属性适当地指向正确的位置   对于目标组件。

我该如何解决这个问题?如何根据项目文件中的配置指定不同的程序集名称?

1 个答案:

答案 0 :(得分:1)

这不是输出路径问题,我认为它与程序集名称有关。

我的理解是你得到了详细的错误列表:

“Visual Studio无法启动调试,因为缺少调试目标”xxx \ xxx \ MyApplication“(注意:它不是MyApplicationd)。我是对的吗?

右键单击您的项目 - &gt; Property-&gt;应用程序,如果您检查您的程序集名称,我的理解是它将是版本名称“MyApplication”的名称。如果你真的想在调试模式下调试它,那么这个属性的名称必须是“MyApplicationd”,当然,如果使用调试程序集名称,释放模式将不起作用。

我的理解是我们可以在项目属性中编辑UI程序集名称,然后在.xxproj文件中生成xml代码,但如果直接编辑proj文件,它将不会在UI下自动更改它。

我也在这里使用这种方式:

Change assembly name based on configuration (Visual Studio 2005/2008)

但它与您的错误消息相同。

您使用的方式似乎与MSBuild命令行有关:

Change name of exe depending on conditional compilation symbol

enter image description here