2016-10-19 10 views
2

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を得ました。しかし、F5/F10を使ってプロジェクトをデバッグモードで実行すると、以下のエラーが発生します。

デバッグ対象が であるため、Visual Studioはデバッグを開始できません。プロジェクトをビルドして再試行するか、OutputPathと AssemblyNameプロパティを、ターゲットアセンブリの正しい場所 を指すように適切に設定してください。

どうすれば解決できますか?プロジェクトファイルの設定に基づいて異なるアセンブリ名を指定するにはどうすればよいですか?

+0

[ビルド]メニューの下にビルド構成マネージャを確認し、あなたのプロジェクトのビルドオプションを有効にするには?または、AssemblyConfiguration属性を使用します。http://stackoverflow.com/questions/1093338/vs2008-outputting-a-different-file-name-for-debug-release-configurations –

+0

@Jack Zhai:ビルドは成功しました。問題は、デバッグモードでデバッグできないことです。これは、 "MyApplication.exe"が見つからないことを示します(つまり、デバッガは間違ったAssemblyNameでアセンブリを起動しようとします)。しかし、リリースモードでデバッグすることができます。 – Kaizen

答えて

1

出力パスの問題ではなく、アセンブリ名に関連すると思います。 xxxは\ XXX \ MyApplicationを「欠けている」

は、「デバッグ対象がためのVisual Studioのデバッグを開始することはできません」(注:それはMyApplicationdではありません)

私の理解では、詳細なエラーリストを得たことです。私は正しい?

あなたのプロジェクト - >プロパティ - >アプリケーションを右クリックして、アセンブリ名を確認したら、リリース名 "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

+0

はい。アセンブリ名は、リリースモードでは "MyApplication"、デバッグモードでは "MyApplicationd"である必要があります。Release \ Debugモードを変更すると、自動的にUIの下でそれを変更するメカニズムはありますか? – Kaizen

+0

@カイゼン、プロジェクトプロパティで手動で編集することができます私は考えることができますが、私はそれを他のメンバーもこの方法を使用することについて考える場合でも、ポストビルドイベントを使用して達成できません:http://stackoverflow.com/questions/ 208084/how-to-use-different-assembly-name-for-different-configurationsですが、手動で編集する方がずっと便利だと思います。 –

関連する問題