有没有什么简单的方法可以使用 Visual Studio 2013 压缩我的源代码?

zum*_*ard 1 git zip visual-studio-2013 pkzip

在尝试创建新的 Visual Studio 项目以尝试各种技术或周末项目时,我想要一种简单的方法来压缩我的源代码,而不必担心 .pdb、obj/bin 文件等。

多年前,我想出了一组 .bat 文件,其中一个是: zipall.bat看起来像这样:

del all.zip
pkzip -add -excl=Backup\* -path -rec all
Run Code Online (Sandbox Code Playgroud)

在运行它之前,我会运行另一个批处理文件: clean.bat,看起来像这样:

del/f/s/q *.aps        2>nul
del/f/s/q *.bsc        2>nul
del/f/s/q *.exp        2>nul
del/f/s/q *.idb        2>nul
del/f/s/q *.ilk        2>nul
del/f/s/q *.lib        2>nul
del/f/s/q *.ncb        2>nul
del/f/s/q *.obj        2>nul
del/f/s/q *.opt        2>nul
del/f/s/q *.pch        2>nul
del/f/s/q *.pdb        2>nul
del/f/s/q *.plg        2>nul
del/f/s/q *.sbr        2>nul
del/f/s/q *.suo        2>nul
del/f/s/q *.sdf        2>nul

del/f/s/q /ah *.suo        2>nul

del/f/s/q BuildLog.htm    2>nul

for /f "delims=;" %%i in ('dir "TempPE" /s/b /ad')         do rmdir /s/q "%%i"
for /f "delims=;" %%i in ('dir "obj" /s/b /ad')            do rmdir /s/q "%%i"
for /f "delims=;" %%i in ('dir "_ReSharper*" /s/b /ad')    do rmdir /s/q "%%i"
for /f "delims=;" %%i in ('dir "TestResults*" /s/b /ad')   do rmdir /s/q "%%i"
Run Code Online (Sandbox Code Playgroud)

我必须定期使用较新工具引入的扩展来更新列表。

顺便说一句,pkzip 中“excl=Backup*”选项的原因是为了维护 zip 文件的备份。 backup.bat看起来像这样:

mkdir Backup 2>nul
if not exist all.zip goto :eof
set datex=%date:/=-%
set timex=%time::=-%
set filename="Backup\%datex% %timex%.zip"
copy all.zip %filename%
Run Code Online (Sandbox Code Playgroud)

由于 Visual Studio 2013 内置了 Git,因此我不再关心备份。

在 Visual Studio 2013 中创建新项目时,如果您指定“创建新的 Git 存储库”,它将创建一个隐藏的 .gitignore 文件,该文件比我的clean.bat更详尽。有没有办法在 pkzip 中使用该列表,以便在压缩时忽略 .gitignore 中的文件?

zum*_*ard 5

.gitignore 文件是在您创建 Visual Studio 项目并选择“创建新 Git 存储库”时创建的。

您不需要使用 pkzip,因为 Git 具有内置的归档功能。

只需输入: git archive -o all.zip HEAD

它将创建最新源的 all.zip,没有任何您不想要的 .zip 文件中的内容,如 bin、obj、exe、nuget 程序集等。