2008-11-06 60 views
3

我正在使用Visual Studio 2008 Team System版創建自定義項目模板。我也爲自定義模板創建了一個自定義嚮導。從VS2008導出的項目模板,但它已損壞?

所以我必須更新vstemplate文件來告訴模板使用我的自定義嚮導。但檔案已損壞!

7zip認爲存檔中的文件夾正在使用非標準的zip壓縮。最新的winzip認爲文件夾上的CRC標題與主要的CRC標題不匹配。

我在做什麼錯?

如果我不更改由VS2008創建的模板zip文件,它工作得很好。但我需要能夠更新zip文件。如果我這樣做,7zip/winzip修復了zip文件結構,然後VS2008不再喜歡這個模板。壓縮文件中的文件夾中的文件不可訪問。

我注意到標準模板似乎保持了平面文件結構。這不是嵌套的文件夾或任何東西。但vstemplate文件具有重新創建原始文件夾結構的targetfilename屬性。

例如,而不是...

<Folder Name="My Project" TargetFolderName="My Project"> 
    <ProjectItem ReplaceParameters="true" TargetFileName="AssemblyInfo.vb">AssemblyInfo.vb</ProjectItem> 
</Folder> 

標準vstemplate定義了以下...

<ProjectItem ReplaceParameters="true" TargetFileName="My Project\AssemblyInfo.vb">AssemblyInfo.vb</ProjectItem> 

我剛喝了一點點思考有以上。他們真的是同一件事嗎?

是否存在創建原始zip文件的問題?

壓縮文件中的文件夾結構是否會將所有內容解鎖?

它是否應該將所有文件添加到zip文件夾中作爲平面文件夾結構?如果是的話,是否有VS2008的修復程序,以便我不必手動修復模板存檔?

回答

0

同樣的問題在這裏。我通過使用<ProjectItem>MyFolder\MyFile.cs</ProjectItem>而不是<Folder>...<Folder>來解決它。

PS:TargetFileName在VS2008 + Windows7中不適用於我。

0

它看起來像Visual Studio創建非標準的ZIP文件。我的解決方案是解壓VS生成的模板zip文件,然後用WinZip重新壓縮文件。

你說VS2008無法訪問模板中的所有文件,但這裏至少得到的zip文件不會導致VS2008出現任何問題。

+0

只是爲了確認,您的示例zip文件是否具有嵌套文件夾結構或平面文件夾結構? – BlackMael 2009-03-06 09:09:22

+0

是的,我剛剛創建了一個測試項目模板,其中包含一個包含cs文件的子文件夾。模板的vstemplate文件在項目模板中有元素反映目錄結構。我使用WinRAR解壓並重新創建ZIP(我在家裏安裝了這個軟件)。 – mackenir 2009-03-06 22:08:04

4

您不需要修改存檔的內容以保持平坦。

訣竅是在編輯存檔的解壓縮內容之後,而不是選擇文件夾並將其壓縮,打開文件夾並選擇所有文件(和文件夾如果存在),然後將其壓縮。

這就是阻止Visual Studio將存檔識別爲模板的原因。這應該適用於7-Zip,WinRAR,或者任何你喜歡的WinZip英國媒體報道。