Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 重命名.NET 2.0可执行文件_C#_.net_Visual Studio_.net Assembly - Fatal编程技术网

C# 重命名.NET 2.0可执行文件

C# 重命名.NET 2.0可执行文件,c#,.net,visual-studio,.net-assembly,C#,.net,Visual Studio,.net Assembly,在生成后事件中更改C#.NET 2.0可执行文件名时,如果该可执行文件具有强名称且具有嵌入清单,是否有人知道存在任何问题?此外,在打包到安装程序中之前,可执行文件将由第三方签名 我知道任何相关的.config文件也需要重命名以反映新的可执行文件名 我猜最好的解决方案是更改项目属性中的程序集名称,而不是重命名可执行文件名,这对吗?问题是VisualStudio不能很好地处理条件程序集名称。(即,在.csproj中的标记中添加一个条件属性)强命名exe没有实际好处。对dll进行强命名的好处是,有人不

在生成后事件中更改C#.NET 2.0可执行文件名时,如果该可执行文件具有强名称且具有嵌入清单,是否有人知道存在任何问题?此外,在打包到安装程序中之前,可执行文件将由第三方签名

我知道任何相关的.config文件也需要重命名以反映新的可执行文件名


我猜最好的解决方案是更改项目属性中的程序集名称,而不是重命名可执行文件名,这对吗?问题是VisualStudio不能很好地处理条件程序集名称。(即,在.csproj中的标记中添加一个条件属性)

强命名exe没有实际好处。对dll进行强命名的好处是,有人不能用自己的恶意版本替换它(您可以将其放入GAC)。除非您在另一个项目中像引用dll一样引用exe(这很奇怪),否则您不需要对其进行强名称。

VS只加载一次项目,然后将其存储在内存中。如果要从VS生成两个程序集,可以添加AfterBuildtarget并调用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>

名称1,默认值
姓名2.习俗

你似乎提到了两个问题,但都没有描述。不,重命名文件从来不是一个真正的问题。强命名exe没有真正的好处。对dll进行强命名的好处是,有人不能用自己的恶意版本替换它(您可以将其放入GAC)。除非您在另一个项目中引用exe,就好像它是一个dll(这会很奇怪),否则您不需要将其命名为强名称。@Jonathan.Peppers-这听起来更像是一个答案,而不是一个注释。如果你把它作为答案,我们可以投票赞成!就这么做了。有时我觉得评论和回答之间有一个灰色地带,因为我不能100%确定删除强名称是否能解决他的问题,即使这很可能是不必要的。@RQDQ-乔诺坦没有回答我的问题,这就是为什么我说它应该是一个评论而不是一个答案。我从来没有问过强命名一个可执行文件是否是一个问题,我问过重命名一个托管可执行文件(恰好是强命名的,并且有一个嵌入的清单)是否是一个问题。这是有价值的信息,但并没有回答我的问题。这只是我们一直在做的事情。谢谢你提供的信息,我一直很感激你提供的任何其他知识,但也许这作为一个评论而不是一个答案会更好?这只会降低有人试图回答列表中问题的可能性。再次感谢你,这是一种享受!唯一需要注意的是,AfterBuild目标应该具有
条件='$(BuildReach)='
以停止错误“在涉及目标“Build”的目标依赖关系图中存在循环依赖关系”