当前位置: 首页 > 编程语言 > C#

根据条件编译符号改变exe文件名Share

时间:2023-04-10 11:14:57 C#

C#根据条件编译符号改变exe文件名你能告诉VisualStudio根据是否设置了特定的条件编译符号来输出不同的exe文件名吗?如果将.csproj文件加载到文本编辑器中,则可以控制AssemblyName属性:WindowsFormsApplication9.DebugWindowsFormsApplication9请注意,这不仅会更改文件名,还会更改程序集名称,如果您有其他代码引用该程序集,那么问题来了可能出现。我自己从来没有这样做过,所以我不能说这个想法有多好或多坏。由于Fredrik为assemblyname标记定义条件的建议似乎使VisualStudio变得奇怪,您可以稍后在csproj文件中更改程序集名称。使用Choose元素有点像if语句,因此如果满足条件,您可以附加名称,如下所示。使用例如DefineConstants在条件属性中获取子字符串似乎不可能(根据MSDN)使用“普通MSBuild”,但可以定义您自己的构建目标并在使用/p:Tag编译时设置属性/p:Tag=value=value(MSBuild命令行参考)...true$(AssemblyName).TagDefined...您可以编辑csproj文件,它只是一个包含“任务”的MSBuild文件。csproj文件中有一个名为“AfterBuild”的部分。也许,您可以在那里添加一个命令,将您的exe重命名为您选择的文件名。(当然,您必须取消对该部分的注释)。也许是这样的:我没有进一步调查,但你应该完成Condition属性,这样你就可以检查是否定义了条件符号。这里的答案都不适合我。他们要么出错,要么什么都不做。这是我在VS2005中运行的解决方案,我想它也应该适用于较新的VS版本。像这样编辑文件*.csproj:if$(PlatformTarget)==x86move/y"$(TargetPath)""$(TargetDir)$(ProjectName)_32.exe"if$(PlatformTarget)==x64move/y"$(TargetPath)""$(TargetDir)$(ProjectName)_64.exe"结果是32位编译生成文件ProjectName_32.exe,64位编译生成ProjectName_64.exe。注意奇怪的语法。if条件两边不能有括号,x86不能使用引号。这种方法的缺点是您不能再在调试器中启动Exe,因为VisualStudio找不到它生成的Exe。这可以通过将“移动”命令替换为“复制”命令来解决,但在这种情况下,您必须将Exe复制到另一个目录,因为您肯定不希望在同一目录中出现两次相同的文件。这一切都是一团糟。你可以在项目设置中直接进入输出目录,但是要做一些很基本的事情,比如更改Exe名称,你必须编写一个笨拙的脚本,并且副作用丑陋,这令人难以置信。微软的耻辱!以上就是C#学习教程:根据条件编译符号更改exe的名称分享的所有内容,如果对大家有用还需要进一步了解C#学习教程,希望大家多多关注——本文收集自网络,不代表立场,如涉及侵权,请点击右边联系管理员删除。如需转载请注明出处: