我在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属性适当地指向正确的位置 对于目标组件。
我该如何解决这个问题?如何根据项目文件中的配置指定不同的程序集名称?
答案 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