首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何为不同的配置使用不同的程序集名称?

如何为不同的配置使用不同的程序集名称?
EN

Stack Overflow用户
提问于 2008-10-16 10:51:54
回答 4查看 9.3K关注 0票数 12

在Visual 2008 (及其他)中,当创建.NET或silverlight应用程序时,如果您查看您的项目属性,您似乎只能拥有一个程序集名称--跨所有配置。我希望将我的应用程序编译为:

MyAppDebug - in调试模式和MyApp - in发布模式

有人知道这是否可能吗?

编辑:

似乎有些人在质疑这个问题背后的理由,所以我要进一步解释一下:

我正在开发一个Silverlight应用程序,当我到一个“构建解决方案”时,它会自动上传到我们的测试站点。问题是,测试团队现在正在测试在线版本,而我正在开发一个新版本。所以,我想要一个像.\MyApp.html这样的url作为QA团队将要测试的常规版本,然后为我正在开发的当前版本提供一个.\MyApp.html?version=debug。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2008-10-16 12:31:29

通过使用后期构建脚本,我成功地实现了我所追求的目标:

代码语言:javascript
运行
复制
if "$(ConfigurationName)"=="Debug" goto debug
"$(SolutionDir)ftp.bat" "$(TargetDir)$(TargetName).xap"
:debug
"$(SolutionDir)ftp.bat" "$(TargetDir)$(TargetName).xap" "$(TargetDir)$(TargetName)Debug.xap"

我的ftp脚本基本上在末尾接受一个可选的参数,这就是上传文件的内容。因此,在我的本地机器上,文件名总是相同的,但是在调试模式下,我们在文件名末尾用" debug“上传它。现在我可以在我的网页上选择要显示的版本。

票数 1
EN

Stack Overflow用户

发布于 2010-04-04 22:39:56

我是通过处理.csproj文件来做到这一点的:要么将属性移动到特定于配置的属性组中,要么只使用条件。示例:

代码语言:javascript
运行
复制
<AssemblyName>MyApp</AssemblyName>
<AssemblyName Condition=" '$(Configuration)' == 'Debug' ">MyAppDebug</AssemblyName>

当您开始像这样处理.csproj时,Visual变得有点瘫痪--例如,我不能再用F5/F10在调试模式下运行该项目;它告诉我没有找到"MyApp.exe“(即调试器试图用错误的AssemblyName启动程序集)。

票数 13
EN

Stack Overflow用户

发布于 2008-10-16 11:13:58

当然,您可以添加一个生成后事件来重命名程序集。如果解决方案只有一个程序集,则此操作将有效。

但是,如果解决方案由多个项目组成,则通常有一个项目引用由另一个问题生成的程序集。假设您的解决方案有两个问题:第一个问题创建一个Windows (MyApp.EXE),它引用第二个项目(MyData.DLL)创建的程序集。

在本例中,调试EXE将被命名为MyAppDebug.EXE,它需要引用MyDataDebug.EXE,并且在构建后事件中不能使用重命名。

因此,我强烈建议不要进行任何重命名。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/208084

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档