VS.Net:;<;myProject>&引用;在安装程序项目中
我在项目中使用以下生成后操作将库合并到我的应用程序中:VS.Net:;<;myProject>&引用;在安装程序项目中,.net,visual-studio,installation,post-build-event,.net,Visual Studio,Installation,Post Build Event,我在项目中使用以下生成后操作将库合并到我的应用程序中: IF $(ConfigurationName) == Debug GOTO end cp $(TargetPath) $(TargetDir)app_unmerged.exe del $(TargetPath) "C:\Program Files\Microsoft\ILMerge\ilmerge.exe" /internalize $(TargetDir)MyApp_unmerged.exe $(TargetDir)someLib.dll
IF $(ConfigurationName) == Debug GOTO end
cp $(TargetPath) $(TargetDir)app_unmerged.exe
del $(TargetPath)
"C:\Program Files\Microsoft\ILMerge\ilmerge.exe" /internalize $(TargetDir)MyApp_unmerged.exe $(TargetDir)someLib.dll /out:$(TargetDir)myApp.exe
del $(TargetDir)myApp_unmerged.exe $(TargetDir)someLib.dll
:end
这个很好用。现在我有了一个安装程序项目,并添加了项目输出。我希望使用“主输出自”,即/bin/Release中的exe。但实际上使用的不是/bin/release/myApp.exe,而是/obj/release/myApp.exe
有人知道我是否可以更改此行为并将/bin/release中的输出用于安装程序项目吗?谢谢 我显式地放置文件,这意味着它没有告诉安装项目使用primery内容,而是显式地放置.exe/.dll文件。
这很好,我可以控制输入哪个文件以及安装项目用户的相对路径,这样安装项目就可以在其他机器上使用。似乎没有解决这个问题的真正方法,但存在一个解决方法。我在Microsoft connect上创建了一个票证: 微软anwser: 嗨 为了执行这些生成后操作,您需要将它们放在批处理文件中,然后添加appropiate命令以在生成后事件对话框中调用批处理文件。我看到脚本中有几个实例引用了许多VisualStudio变量。由于我们不将这些变量作为环境变量公开,因此必须将它们作为参数传递给批处理文件 我希望这有帮助 蒋糖果
Program Manager-Visual Studio我解决了在/obj文件夹中应用Ilmerge的问题,这是我的生成后事件配置: 复制$(ProjectDir)obj\$(PlatformName)\$(ConfigurationName)\$(TargetFileName)$(TargetDir)temp.exe $(solutionDir)\lib\ilmerge/wildcards/t:exe/out:“$(ProjectDir)obj\$(PlatformName)\$(ConfigurationName)\$(TargetFileName)”“$(TargetDir)temp.exe”“$(TargetDir)log4net.dll”“$(TargetDir)other.dll”
DEL$(TargetDir)temp.exe虽然这可以工作,但其代价是无法使用不同的生成配置,因为不同配置的文件位置不同。目前我有一个Debug、Release和EvaluationRelease配置。我知道,我们只安装Release。顺便说一句,大多数项目已经转移到Wix3,你首先需要更加努力,但你可以控制一切。该链接似乎不是公开的(“你请求的内容找不到,或者你没有查看它的权限”)。既然我们其他人看不到它,你应该把它从你的答案中删除。