重命名.NET 2.0可执行文件
有没有人知道更改后生成事件的C#.NET 2.0可执行文件名时的任何问题,因为可执行文件是强命名的并且具有嵌入式清单?另外,可执行文件在被打包到安装程序之前将由第三方签名。重命名.NET 2.0可执行文件
我知道任何关联的.config文件也需要重命名以反映新的可执行文件名称。
我还猜测最好的解决方案是更改项目属性中的程序集名称,而不是重命名可执行文件名?问题是Visual Studio不能很好地处理条件汇编名称。 (即将条件属性添加到.csproj中的标签)
VS加载项目一次,然后将其存储在内存中。如果你想建立从VS两个组件可以添加AfterBuild目标,并呼吁MSBuild的再次但是使用不同的参数生成程序集:
<ProperttyGroup Condition="'$(BuildAgain)'==''">
<!-- Default parameters to VS -->
<AssemblyName>Name1,Default</AssemblyName>
<ProperttyGroup>
<ProperttyGroup Condition="'$(BuildAgain)'=='true'">
<!-- Overrided parameters -->
<AssemblyName>Name2.Custom</AssemblyName>
<ProperttyGroup>
<Target Name="AfterBuild"
Condition="'$(BuildAgain)'==''">
<MSBuild Projects="$(MSBuildProjectFullPath)"
Properties="BuildAgain=true;Configuration=$(Configuration);Platform=$(Platform)"
Targets="Rebuild"
</Target>
作品一种享受!唯一需要注意的是AfterBuild目标应该有'Condition ='$(BuildAgain)=='''来停止错误'目标依赖关系图中存在循环依赖关系,涉及目标“Build”' – 2011-03-08 10:41:31
同意。我已经纠正了答案。 – 2011-03-08 17:57:40
强命名exe文件没有真正的好处。强大的命名dll的好处是,有人不能用自己版本的恶意代码替换它(并且可以将其放入GAC中)。除非你在另一个项目中引用你的exe,就好像它是一个dll(这很奇怪),你不需要强调它的名字。
这只是我们一直以来做的事情。感谢您提供的信息,我总是欣赏其他知识,但也许这会更好,而不是回答?它只会降低某人尝试从列表中回答问题的可能性。再一次,它是值得赞赏的。 – 2011-03-05 10:25:24
你好像提了两个问题,但没有说明。不,重命名文件永远不是真正的问题。 – 2011-03-04 14:04:33
强大的命名exe并没有真正的好处。强大的命名dll的好处是,有人不能用自己版本的恶意代码替换它(并且可以将其放入GAC中)。除非你在另一个项目中引用你的exe,就好像它是一个dll(这很奇怪),你不需要强调它的名字。 – jonathanpeppers 2011-03-04 14:50:00
@ Jonathan.Peppers - 听起来更像是一个答案,而不是评论。如果你把它作为答案,我们可以投票! – RQDQ 2011-03-04 20:20:05