從我個人的經驗來看,只要他們是文件系統上的Web應用程序的一部分,從Visual Studio的Web部署或發佈將選取不屬於解決方案的文件。
例如:
MVCSite
- 圖像/ spirtes.png
如果您是從MVC站點,圖像文件夾的內容的此副本將發佈在Web服務器上覆制即使它們不包含在項目文件中。
---編輯
上述解決方案將與網站,而不是一個Web應用程序。以下內容將與Web應用程序一起使用。從MSBuild的
一下添加到出版分佈的末端(Production.pubxml)
<Target Name="CustomCollectFiles">
<ItemGroup>
<_CustomFiles Include="Test\**\*" />
<FilesForPackagingFromProject Include="%(_CustomFiles.Identity)">
<DestinationRelativePath>%(RecursiveDir)%(Filename)%(Extension) </DestinationRelativePath>
</FilesForPackagingFromProject>
</ItemGroup>
</Target>
<PropertyGroup>
<CopyAllFilesToSingleFolderForPackageDependsOn>
CustomCollectFiles;
$(CopyAllFilesToSingleFolderForPackageDependsOn);
</CopyAllFilesToSingleFolderForPackageDependsOn>
<CopyAllFilesToSingleFolderForMsdeployDependsOn>
CustomCollectFiles;
$(CopyAllFilesToSingleFolderForPackageDependsOn);
</CopyAllFilesToSingleFolderForMsdeployDependsOn>
</PropertyGroup>
</Project>
例構建腳本
echo 'Hello, world.' > "%WORKSPACE%\TestMVC\Test\fo1.txt"
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" "%WORKSPACE%\TestMVC.sln" /p:Configuration=Release /p:Platform="Any CPU" /p:PublishProfile=Production
輸出
Copying Test\fo1.txt to obj\Release\Package\PackageTmp\fo1.txt.
Copying Test\foo.txt to obj\Release\Package\PackageTmp\foo.txt.
糟糕!肯定沒不是說要冷靜下來,但不知道我是否準備好上任。我正在進行文件系統部署,因爲這需要移交給實際部署的操作。目前主要的已知上行是發佈將轉換應用於web.config。但是......我想盡可能地利用構建在流程中的MS和潛在的隱藏好處。你是說我可以發佈「images /」,並且「images/sprite.png」,「images/other-sprite.png」,「images/yet-another-sprite.png」,「images/*。png 「會全部發表嗎? – jameslafferty
我更新了答案,以包含可用於Web應用程序的東西 –
謝謝,Scott!奇蹟般有效。 – jameslafferty