由于ClickOnce,我需要为所使用的每个环境/配置更改WPF应用程序的程序集名称。
配置是:
因此,为了能够将3个环境发布到ClickOnce并将所有这些环境安装在一台机器中而没有一个覆盖另一台机器,我们需要为所有三个环境的解决方案的主项目提供不同的程序集名称。程序集的名称如下:
感谢this StackOverflow answer,我设法做到了,而且效果很好。 MyApp.Client.csproj的代码是:
<PropertyGroup>
...
<AssemblyName>MyApp.Client</AssemblyName>
...
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<AssemblyName>MyApp.Client.Debug</AssemblyName>
...
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Testing|AnyCPU' ">
<AssemblyName>MyApp.Client.Testing</AssemblyName>
...
</PropertyGroup>
我可以将它发布到我的不同环境中,并且运行良好,我可以执行我的应用程序并使用它。但是我无法在Visual Studio中调试它,似乎IDE在寻找&#34; MyApp.Client&#34;作为应用程序入口点并抛出这样的东西:
Visual Studio无法启动调试,因为调试目标&#39; D:\ Code \ MySolution \ MyApp \ bin \ Testing \ MyApp.Client.exe&#39;不见了。请构建项目并重试,或者相应地设置OutputPath和AssemblyName属性以指向目标程序集的正确位置。
正在进行测试时,它应该搜索MyApp.Client.Testing.exe,但这并没有发生。我一直在谷歌上搜索这个错误,但我还没有找到解决方案。我找到的所有引用都讨论了更改的OutputPath和类似的东西,但我认为这不是问题,因为OutputPath没问题,问题是可执行文件名。
任何帮助将不胜感激。感谢。