导航:首页 > 程序命令 > vs生成事件命令

vs生成事件命令

发布时间:2022-05-12 17:10:34

① 请教有关VS后期生成事件的问题

不知道你用的哪个版本
我用的专业版默认有这个

② 如何在Visual Studio中利用命令行集成Dotfuscator混淆处理

首先在Visual Studio中打开Dotfuscator:点击菜单栏中的 工具 > PreEmptive Protection - Dotfuscator 打开Dotfuscator。

此处默认新建了Dotfuscator项目,建议先进行保存,将文件保存至你要混淆项目的解决方案文件夹中,如,个人保存的位置为: E:/Projects/OpenSourceProject/ReferenceDoc/Dotfuscator/Samples/DotfuscatorSample/DotfuscatorSample.xml

保存到解决方案文件夹并非必须,此处如此处理可以为了后面进一步处理更加方便。

添加待混淆文件,如图所示:

修改文件路径,将文件路径修改为如下图所示:点击 属性 ,查看 项目属性 - configdir (就是之前的保存位置),然后切换回 输入 ,点击输入中第三个按钮 编辑输入 (那支笔),将路径中与 configdir 匹配的部分替换为 ${configdir} (注意是大括号)。

处理此步骤亦不是必须的,这样处理的原因是为了让我们的配置与本地无关(相对路径),方便其他人合作使用。


至此,基本配置就可以了,点击生成项目就可以进行混淆了。至于其他更多配置见官方文档。

本地可以直接在Dotfuscator工具中点击菜单栏中的 帮助 > 帮助目录 (此为中文文档,基础的配置基本都有)。

帮助文件本地目录参考(中文帮助): C:/Program Files (x86)/Microsoft Visual Studio 14.0/PreEmptive Solutions/Dotfuscator and Analytics Community Edition/zh-Hans

配置Visual Studio命令调用Dotfuscator 主要操作就是编辑生成后事件:右击项目 属性 ,切换到 生成事件 页面,编辑 后期生成事件命令行 ,添加如下代码:

此处为了保证只有在Release的模式下使用混淆,故添加了Release判断。

if $(ConfigurationName)==Release "C:/Program Files (x86)/Microsoft Visual Studio 14.0/PreEmptive Solutions/Dotfuscator and Analytics Community Edition/dotfuscatorcli.exe" /q "$(SolutionDir)DotfuscatorSample.xml"

代码解释:dotfuscator命令行工具+参数+项目混淆配置文件;其中配置文件之前保存到解决方案文件夹下,故此出可以直接用解决方案文件目录来索引。

代码中唯一不足就是命令行工具使用了绝对路径,vs中的宏参数没有可以直接使用的,若读者有啥好方法将此变为相对路径,望通知。 —— 但关于系统中添加环境变量的法子就不要了,个人不喜。

如果你在此处下一步需要进一步的打包处理,而你又需要Debug模式下一样可以打包测试。如,本人使用WiX打包,需要配置文件路径,方便一点就是要配置为生成路径,但是release模式下,需要将混淆的打包进去,而非直接生成的文件。此时,你不能改打包配置(改路径的话,debug会用不了),所以,你需要在将混淆过的文件拷贝到原来的release生成目录。所以我最后完整的生成事件就是如下代码了:

注意:经测试,如果在Dotfuscator中将生成路径设为文件来源路径,可以生成还会自动覆盖,但软件会用不了,具体原因不明。

if $(ConfigurationName)==Release "C:/Program Files (x86)/Microsoft Visual Studio 14.0/PreEmptive Solutions/Dotfuscator and Analytics Community Edition/dotfuscatorcli.exe" /q "$(SolutionDir)DotfuscatorSample.xml" if $(ConfigurationName)==Release x /e /y "$(SolutionDir)Dotfuscated/*.*" "$(TargetDir)"

代码中的目录可以见Dotfuscator配置的生成目录:

③ vs2010编译出错

代码工程设置属性页里面生成事件加入了自己的cmd命令,而该命令不符合VS生成事件的语法结构,具体你看看生成事件选项里面它设置的是调用那个文件,再打开那个文件看看检查下有什么错误。

④ 如何获得Visual Studio的“发布”功能,包括后生成事件文件

很多时候会想在vs编译的时候自定义一些事情或者动作,

例如:

拷贝生成的文件到特定的目录。

部署程序到测试目录或者环境,例如注册到windows服务,更新GAC等。

根据编译环境生成特定的配置文件(例如web.config) PS: 身在一个复杂环境, 这是我最想要的功能。

自动执行外部exe。

同步DLL和其他资源文件。

1.最简单的自然是用Visual Studio自带的编译事件,这东西使用方便,又是Visual Studio自带的功能,就是功能弱了一点(好吧 其实是很弱)

将项目生成的DLL文件拷贝到特定目录,(如果你想拷贝一整个文件夹 用x; 当然,熟悉命令行的人可以弄出更多的玩法)

如下图所示

2.另外一种比较推荐的方式是自定义编译扩展(可以执行C#代码...功能强大多了), 看下面这个项目文件的最后几句 (项目文件就是 项目名.csproj)

<Import Project="..\..\Build\Tasks\Build.tasks" />
<Target Name="BeforeBuild">
<Message Text="Start Automatic Generate Configuration File, Source File: $(ProjectDir)web.config" Importance="high">
</Message>
<ConfigurationEnvironmentTask TemplateFile="$(ProjectDir)web.template.config" TargetFile="$(ProjectDir)web.config" DataSource="$(EnvironmentName).config" />
</Target>
</Project>
这几句话的意思是

1. 包含一个task文件 (该文件包含了ConfigurationEnvironmentTask 的定义,这是一个自定开发的类,其主要作用是根据环境生成web.config文件)

2.输出一行提示信息 Start Automatic..... (该信息将显示在Output Window)

3. 调用ConfigurationEnvironmentTask 并传入一些参数(TemplateFile 等都是自己定义的参数)

Build.tasks的文件内容其实很简单,主要就是说明了这个task定义在哪里 (Build.dll)

<?xml version="1.0" encoding="utf-8"?>

⑤ vs2008编译成功,生成mt.exe时出错

建议把编译时输出的错误信息全部贴上来,你给的信息太少,大家只能猜
请看看你的项目设置中的“生成事件”下的几个选项中的“命令行”项内容是否正确,把它清空试试

附MSDN解释:

Visual C++ 概念:生成 C/C++ 程序
项目生成错误 PRJ0003

错误消息
生成“command line”时出错。

由“属性页”对话框中的用户输入形成的命令 command line 返回了一个错误代码,但输出窗口中不显示任何信息。

此错误的可能原因为:

项目依赖于 ATL Server。从 Visual Studio 2008 开始,ATL Server 不再包括在 Visual Studio 中,但已在 CodePlex 作为共享源代码项目发布。若要下载 ATL Server 源代码和工具,请转到 http://go.microsoft.com/fwlink/。

系统资源不足。关闭一些应用程序以解决此问题。

没有足够的安全特权。验证是否有足够的安全特权。

VC++ 目录中指定的可执行路径不包括您正尝试运行的工具的路径。

对于生成文件项目,缺少要在“生成命令行”或“重新生成命令行”上运行的命令。

⑥ VS2010 error MSB3073 代码为1

如果你有多个项目,选中你出问题的项目,右键选择属性>配置属性>生成事件>生成后事件,选择“否”

⑦ 求助:vs2008编译错误Project error PRJ0019-CSDN论坛

根本原因是由于VS记录了个相对路径 修改为绝对路径然后再试!
工程->属性->生成事件->生成后事件->命令行 修改哈,或者删除。估计是这里出问题了

⑧ 请问大家一般用visual studio的命令提示符做些什么事呢

手动编译和链接程序.
这个程序作为外部程序,整合到vs上.以前如果接触脚本的话,象python,lua都是通过这种方式挂接到vs上,其程序生成,你仍然可以用命令行方式来控制.

共同点:命令行,这利于进于事务处理.关于它的使用不仅限如此.
在项目属性中,有一个"生成事件"",名称够"事务"了吧,在这里你可以用命令行,对生成后的或是生成前的数据进行操作.这个非常有用.

阅读全文

与vs生成事件命令相关的资料

热点内容
铁皮人下个服务器什么时候开 浏览:96
pdf解密打印 浏览:354
安卓要升级什么系统 浏览:514
什么压缩刻录软件好用 浏览:229
android打包和设置编译 浏览:7
华为服务器怎么做热备份 浏览:211
千锋python语句 浏览:778
风水app哪个好用 浏览:5
C语言编译器开发过程图示 浏览:723
压缩包源文件加密方法 浏览:970
stc89c52单片机优点 浏览:799
程序员接受单休规定 浏览:57
java历史记录 浏览:616
linux下cuda 浏览:894
浪潮服务器如何退出安全模式 浏览:567
鱼塘app哪里出的 浏览:383
前端程序员如何静下来学习 浏览:851
小米程序员上下班时间 浏览:603
c语言编译器实时翻译 浏览:3
初等算法信息学 浏览:878