在Visual 2008 (及其他)中,当创建.NET或silverlight应用程序时,如果您查看您的项目属性,您似乎只能拥有一个程序集名称--跨所有配置。我希望将我的应用程序编译为:
MyAppDebug - in调试模式和MyApp - in发布模式
有人知道这是否可能吗?
编辑:
似乎有些人在质疑这个问题背后的理由,所以我要进一步解释一下:
我正在开发一个Silverlight应用程序,当我到一个“构建解决方案”时,它会自动上传到我们的测试站点。问题是,测试团队现在正在测试在线版本,而我正在开发一个新版本。所以,我想要一个像.\MyApp.html这样的url作为QA团队将要测试的常规版本,然后为我正在开发的当前版本提供一个.\MyApp.html?version=debug。
发布于 2008-10-16 12:31:29
通过使用后期构建脚本,我成功地实现了我所追求的目标:
if "$(ConfigurationName)"=="Debug" goto debug
"$(SolutionDir)ftp.bat" "$(TargetDir)$(TargetName).xap"
:debug
"$(SolutionDir)ftp.bat" "$(TargetDir)$(TargetName).xap" "$(TargetDir)$(TargetName)Debug.xap"我的ftp脚本基本上在末尾接受一个可选的参数,这就是上传文件的内容。因此,在我的本地机器上,文件名总是相同的,但是在调试模式下,我们在文件名末尾用" debug“上传它。现在我可以在我的网页上选择要显示的版本。
发布于 2010-04-04 22:39:56
我是通过处理.csproj文件来做到这一点的:要么将属性移动到特定于配置的属性组中,要么只使用条件。示例:
<AssemblyName>MyApp</AssemblyName>
<AssemblyName Condition=" '$(Configuration)' == 'Debug' ">MyAppDebug</AssemblyName>当您开始像这样处理.csproj时,Visual变得有点瘫痪--例如,我不能再用F5/F10在调试模式下运行该项目;它告诉我没有找到"MyApp.exe“(即调试器试图用错误的AssemblyName启动程序集)。
发布于 2008-10-16 11:13:58
当然,您可以添加一个生成后事件来重命名程序集。如果解决方案只有一个程序集,则此操作将有效。
但是,如果解决方案由多个项目组成,则通常有一个项目引用由另一个问题生成的程序集。假设您的解决方案有两个问题:第一个问题创建一个Windows (MyApp.EXE),它引用第二个项目(MyData.DLL)创建的程序集。
在本例中,调试EXE将被命名为MyAppDebug.EXE,它需要引用MyDataDebug.EXE,并且在构建后事件中不能使用重命名。
因此,我强烈建议不要进行任何重命名。
https://stackoverflow.com/questions/208084
复制相似问题