導航:首頁 > 程序命令 > 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生成事件命令相關的資料

熱點內容
金山區文件夾封套定製 瀏覽:708
soho程序員 瀏覽:672
java位元組截取 瀏覽:525
php提交作業 瀏覽:815
房產還沒解壓可以辦理贈予嗎 瀏覽:224
java毫秒轉分鍾 瀏覽:753
模式識別中文pdf 瀏覽:774
c語言平均數字編譯錯誤 瀏覽:170
單片機算交流 瀏覽:45
php自適應網站 瀏覽:467
2b2t伺服器怎麼獲得許可權 瀏覽:816
c語言javaphp 瀏覽:804
程序員技術不分高低嗎 瀏覽:619
dos不是內部或外部命令 瀏覽:709
PC機與單片機通訊 瀏覽:675
二級加密圖 瀏覽:113
壓縮機異音影響製冷嗎 瀏覽:711
德斯蘭壓縮機 瀏覽:490
程序員太極拳視頻 瀏覽:531
網上購買加密鎖 瀏覽:825